From: ex
Subject: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <1157437159.542367.232890@m73g2000cwd.googlegroups.com>
Hi, I'm new to Lisp.
I found this excellent newbie tutorial and I was trying to follow it on
LispBox, but it dies when I try to call (weld chain bucket) the error
is:

0: frame binding variables (~ = dynamically):
  | ~ SYSTEM::*FASOUTPUT-STREAM* <--> NIL
  1: EVAL frame for form (QUOTE)
  2: EVAL frame for form (LIST (LIST 'AND '(EQ *LOCATION* 'ATTIC) (LIST
'EQ (LIST 'QUOTE SUBJECT) ''CHAIN) (LIST 'EQ (LIST 'QUOTE OBJECT)
''BUCKET) '(HAVE 'CHAIN)) (QUOTE) 'REST)
  3: EVAL frame for form (LIST 'COND (LIST (LIST 'AND '(EQ *LOCATION*
'ATTIC) (LIST 'EQ (LIST 'QUOTE SUBJECT) ''CHAIN) (LIST 'EQ (LIST 'QUOTE
OBJECT) ''BUCKET) '(HAVE 'CHAIN)) (QUOTE) 'REST) '(T '(I CANT WELD LIKE
THAT.)))
  4: EVAL frame for form (LET* ((SUBJECT (CADR .
#1=(SYSTEM::<MACRO-FORM>))) (OBJECT (CADDR . #1#))) (LIST 'COND (LIST
(LIST 'AND '(EQ *LOCATION* 'ATTIC) (LIST 'EQ (LIST 'QUOTE SUBJECT)
''CHAIN) (LIST 'EQ (LIST 'QUOTE OBJECT) ''BUCKET) '(HAVE 'CHAIN))
(QUOTE) 'REST) '(T '(I CANT WELD LIKE THAT.))))
  5: EVAL frame for form (IF (/= (LIST-LENGTH-DOTTED
SYSTEM::<MACRO-FORM>) 3) (SYSTEM::MACRO-CALL-ERROR
SYSTEM::<MACRO-FORM>) (LET* ((SUBJECT (CADR .
#1=(SYSTEM::<MACRO-FORM>))) (OBJECT (CADDR . #1#))) (LIST 'COND (LIST
(LIST 'AND '(EQ *LOCATION* 'ATTIC) (LIST 'EQ (LIST 'QUOTE SUBJECT)
''CHAIN) (LIST 'EQ (LIST 'QUOTE OBJECT) ''BUCKET) '(HAVE 'CHAIN))
(QUOTE) 'REST) '(T '(I CANT WELD LIKE THAT.)))))
  6: APPLY frame for call (WELD '(WELD CHAIN BUCKET) '#(NIL NIL))
  7: EVAL frame for form (WELD CHAIN BUCKET)
  8: EVAL frame for form (SWANK:LISTENER-EVAL "(weld chain bucket)

I don't have idea what that means, I'm using LisBox based on CLISP, any
ideas why this happens, is LispBox a bad LISP implementation? I liked
Lisp in a Box because it was easy to install and use.

(Just for the record the same code runs perfectly on the telnet sesion.)

From: Pascal Bourguignon
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <87odtu95wx.fsf@thalassa.informatimago.com>
"ex" <·······@gmail.com> writes:

> Hi, I'm new to Lisp.
> I found this excellent newbie tutorial and I was trying to follow it on
> LispBox, but it dies when I try to call (weld chain bucket) the error
> is:

No, this is not the error. There is no error message in what follows!  
If you want us to help you, you should show us the error message.

> 0: frame binding variables (~ = dynamically):
>   | ~ SYSTEM::*FASOUTPUT-STREAM* <--> NIL
>   1: EVAL frame for form (QUOTE)
>   2: EVAL frame for form (LIST (LIST 'AND '(EQ *LOCATION* 'ATTIC) (LIST
> 'EQ (LIST 'QUOTE SUBJECT) ''CHAIN) (LIST 'EQ (LIST 'QUOTE OBJECT)
> ''BUCKET) '(HAVE 'CHAIN)) (QUOTE) 'REST)
>   3: EVAL frame for form (LIST 'COND (LIST (LIST 'AND '(EQ *LOCATION*
> 'ATTIC) (LIST 'EQ (LIST 'QUOTE SUBJECT) ''CHAIN) (LIST 'EQ (LIST 'QUOTE
> OBJECT) ''BUCKET) '(HAVE 'CHAIN)) (QUOTE) 'REST) '(T '(I CANT WELD LIKE
> THAT.)))
>   4: EVAL frame for form (LET* ((SUBJECT (CADR .
> #1=(SYSTEM::<MACRO-FORM>))) (OBJECT (CADDR . #1#))) (LIST 'COND (LIST
> (LIST 'AND '(EQ *LOCATION* 'ATTIC) (LIST 'EQ (LIST 'QUOTE SUBJECT)
> ''CHAIN) (LIST 'EQ (LIST 'QUOTE OBJECT) ''BUCKET) '(HAVE 'CHAIN))
> (QUOTE) 'REST) '(T '(I CANT WELD LIKE THAT.))))
>   5: EVAL frame for form (IF (/= (LIST-LENGTH-DOTTED
> SYSTEM::<MACRO-FORM>) 3) (SYSTEM::MACRO-CALL-ERROR
> SYSTEM::<MACRO-FORM>) (LET* ((SUBJECT (CADR .
> #1=(SYSTEM::<MACRO-FORM>))) (OBJECT (CADDR . #1#))) (LIST 'COND (LIST
> (LIST 'AND '(EQ *LOCATION* 'ATTIC) (LIST 'EQ (LIST 'QUOTE SUBJECT)
> ''CHAIN) (LIST 'EQ (LIST 'QUOTE OBJECT) ''BUCKET) '(HAVE 'CHAIN))
> (QUOTE) 'REST) '(T '(I CANT WELD LIKE THAT.)))))
>   6: APPLY frame for call (WELD '(WELD CHAIN BUCKET) '#(NIL NIL))
>   7: EVAL frame for form (WELD CHAIN BUCKET)
>   8: EVAL frame for form (SWANK:LISTENER-EVAL "(weld chain bucket)


Why don't you just use copy-and-paste?

http://www.lisperati.com/actions.html

The form is:

                (weld 'chain 'bucket)

not:
                (weld chain bucket)



> I don't have idea what that means, I'm using LisBox based on CLISP, any
> ideas why this happens, is LispBox a bad LISP implementation? I liked
> Lisp in a Box because it was easy to install and use.
>
> (Just for the record the same code runs perfectly on the telnet sesion.)


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"A TRUE Klingon warrior does not comment his code!"
From: ex
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <1157489807.880616.241110@h48g2000cwc.googlegroups.com>
Hi Pascal!

I think the problem is with the definition of game-action (the one
using double macros) because when I did it whitout using macros (weld
'chain 'bucket) it ran fine.
Just for double check I loaded the lisp file downloaded and the same
error happens:

EVAL: too few parameters for special operator QUOTE: (QUOTE)
   [Condition of type SYSTEM::SIMPLE-SOURCE-PROGRAM-ERROR]

Using (weld chain bucket) must work here because game-action has been
declared using a macro to hide the ' (quotes).

Thank you.

Pascal Bourguignon wrote:
> "ex" <·······@gmail.com> writes:
>
> > Hi, I'm new to Lisp.
> > I found this excellent newbie tutorial and I was trying to follow it on
> > LispBox, but it dies when I try to call (weld chain bucket) the error
> > is:
>
> No, this is not the error. There is no error message in what follows!
> If you want us to help you, you should show us the error message.
>
From: Pascal Bourguignon
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <87wt8i6j0w.fsf@thalassa.informatimago.com>
"ex" <·······@gmail.com> writes
> Pascal Bourguignon wrote:
>> "ex" <·······@gmail.com> writes:
>>
>> > Hi, I'm new to Lisp.
>> > I found this excellent newbie tutorial and I was trying to follow it on
>> > LispBox, but it dies when I try to call (weld chain bucket) the error
>> > is:
>>
>> No, this is not the error. There is no error message in what follows!
>> If you want us to help you, you should show us the error message.
>
> I think the problem is with the definition of game-action (the one
> using double macros) because when I did it whitout using macros (weld
> 'chain 'bucket) it ran fine.
> Just for double check I loaded the lisp file downloaded and the same
> error happens:
>
> EVAL: too few parameters for special operator QUOTE: (QUOTE)
>    [Condition of type SYSTEM::SIMPLE-SOURCE-PROGRAM-ERROR]
>
> Using (weld chain bucket) must work here because game-action has been
> declared using a macro to hide the ' (quotes).

What does GAME-ACTION have to do with (WELD CHAIN BUCKET)?
Do you think Common Lisp believes in horoscopes?
That he's influenced by stars or other irrelevant stuff?

WELD is the name of a function.  
Therefore (WELD CHAIN BUCKET) is interpreted as:
- the evaluation of the variable CHAIN,
- the evaluation of the variable BUCKET,
- the calling of the function named WELD with as arguments the value
  of the variable CHAIN and the value of the variable BUCKET.

Do you have a variable named CHAIN?  What's its value?
Do you have a variable named BUCKET? What's its value?

I'm sorry, but I see no variable named CHAIN or BUCKET in the sources
provided at http://www.lisperati.com/code.html.

If you're considering some other sources,  Your fault for not showing
it us!  Or do you believe we have cristall balls to guess what sources
you're working on?


Anyways, reading once again the source of the function WELD, you can
see that the subject and object arguments are compared to the symbols
CHAIN and BUCKET, properly quoted to avoid getting at their value, but
to take them literally.  You must do the same when you try to call the
function with literal values, as clearly showned on 
http://www.lisperati.com/actions.html

(defun weld (subject object)
  (cond ((and (eq *location* 'attic)
              (eq subject 'chain)
              (eq object 'bucket)
              (have 'chain)
              (have 'bucket)
              (not *chain-welded*))
	 (setf *chain-welded* 't)
         '(the chain is now securely welded to the bucket.))
        (t '(you cannot weld like that.))))




[82]> (load"casting-spels.lisp")
;; Loading file casting-spels.lisp ...
WARNING: DEFUN/DEFMACRO: redefining function INVENTORY in
         /a6/users/pjb/src/lisp/encours/casting-spels.lisp, was defined in
         top-level
WARNING: DEFUN/DEFMACRO: redefining function HAVE in
         /a6/users/pjb/src/lisp/encours/casting-spels.lisp, was defined in
         top-level
WARNING: DEFUN/DEFMACRO: redefining function WELD in
         /a6/users/pjb/src/lisp/encours/casting-spels.lisp, was defined in
         top-level
;; Loaded file casting-spels.lisp
T
[83]> (weld 'chain 'bucket)
(I CANT WELD LIKE THAT.)
[84]> 



-----(casting-spels.lisp)-----------------------------------------------

#+allegro (defparameter tpl:*print-length* nil)
(setf *print-length* nil)

(defparameter *objects* '(whiskey-bottle bucket frog chain))

(defparameter *map*
  '((living-room (you are in the living-room of a wizard's house. there is a wizard snoring loudly on the couch.)
     (west door garden)  
     (upstairs stairway attic))
    (garden (you are in a beautiful garden. there is a well in front of you.)
     (east door living-room))
    (attic (you are in the attic of the abandoned house. there is a giant welding torch in the corner.)
     (downstairs stairway living-room))))

(defparameter *object-locations* '((whiskey-bottle living-room)
                                   (bucket living-room)
                                   (chain garden)
                                   (frog garden)))

(defparameter *location* 'living-room)

(defun describe-location (location map)
  (second (assoc location map)))

(defun describe-path (path)
  `(there is a ,(second path) going ,(first path) from here.))

(defun describe-paths (location map)
  (apply #'append (mapcar #'describe-path (cddr (assoc location map)))))

(defun is-at (obj loc obj-loc)
  (eq (second (assoc obj obj-loc)) loc))

(defun describe-floor (loc objs obj-loc)
  (apply #'append (mapcar (lambda (x)
                            `(you see a ,x on the floor.))
                          (remove-if-not (lambda (x)
                                           (is-at x loc obj-loc))
                                         objs))))

(defun look ()
  (append (describe-location *location* *map*)
          (describe-paths *location* *map*)
          (describe-floor *location* *objects* *object-locations*)))

(defun walk-direction (direction)
  (let ((next (assoc direction (cddr (assoc *location* *map*)))))
    (cond (next (setf *location* (third next)) (look))
          (t '(you cant go that way.)))))

(defmacro defspel (&rest rest) `(defmacro ,@rest))

(defspel walk (direction)
  `(walk-direction ',direction))

(defun pickup-object (object)
  (cond ((is-at object *location* *object-locations*)
         (push (list object 'body) *object-locations*)
         `(you are now carrying the ,object))
        (t '(you cannot get that.))))

(defspel pickup (object)
  `(pickup-object ',object))

(defun inventory ()
  (remove-if-not (lambda (x)
                   (is-at x 'body *object-locations*))
                 *objects*))

(defun have (object)
  (member object (inventory)))

(defparameter *chain-welded* nil)


(defun weld (subject object)
  (cond ((and (eq *location* 'attic)
              (eq subject 'chain)
              (eq object 'bucket)
              (have 'chain)
              (have 'bucket)
              (not *chain-welded*))
	 (setf *chain-welded* 't)
         '(the chain is now securely welded to the bucket.))
        (t '(you cannot weld like that.))))







(defparameter *bucket-filled* nil)

(defspel game-action (command subj obj place &rest rest)
  `(defspel ,command (subject object)
     `(cond ((and (eq *location* ',',place)
                  (eq ',subject ',',subj)
                  (eq ',object ',',obj)
                  (have ',',subj))
             ,@',rest)
            (t '(i cant ,',command like that.)))))

(game-action weld chain bucket attic
  (cond ((and (have 'bucket) (setf *chain-welded* 't)) '(the chain is now securely welded to the bucket.))
        (t '(you do not have a bucket.))))

(game-action dunk bucket well garden
  (cond (*chain-welded* (setf *bucket-filled* 't) '(the bucket is now full of water))
        (t '(the water level is too low to reach.))))

(game-action splash bucket wizard living-room
  (cond ((not *bucket-filled*) '(the bucket has nothing in it.))
        ((have 'frog) '(the wizard awakens and sees that you stole his frog. he is so upset he banishes you to the netherworlds- you lose! the end.))
        (t '(the wizard awakens from his slumber and greets you warmly. he hands you the magic low-carb donut- you win! the end.))))
 
;; Local Variables:
;; eval: (cl-indent 'game-action  4)
;; End:

------------------------------------------------------------------------

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
----------> http://www.netmeister.org/news/learn2quote.html <-----------
---> http://homepage.ntlworld.com/g.mccaughan/g/remarks/uquote.html <---

__Pascal Bourguignon__                     http://www.informatimago.com/
From: bradb
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <1157496607.513231.81610@m79g2000cwm.googlegroups.com>
> (defspel game-action (command subj obj place &rest rest)
>   `(defspel ,command (subject object)
>      `(cond ((and (eq *location* ',',place)
>                   (eq ',subject ',',subj)
>                   (eq ',object ',',obj)
>                   (have ',',subj))
>              ,@',rest)
>             (t '(i cant ,',command like that.)))))
>
> (game-action weld chain bucket attic
>   (cond ((and (have 'bucket) (setf *chain-welded* 't)) '(the chain is now securely welded to the bucket.))
>         (t '(you do not have a bucket.))))

umm, isn't GAME-ACTION a macro that generates a macro?  Therefore WELD
is a macro, so its arguments are unevaluated?  I can see no function
definition for WELD.

Cheers
Brad
From: Pascal Bourguignon
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <87irk17uqa.fsf@thalassa.informatimago.com>
"bradb" <··············@gmail.com> writes:

>> (defspel game-action (command subj obj place &rest rest)
>>   `(defspel ,command (subject object)
>>      `(cond ((and (eq *location* ',',place)
>>                   (eq ',subject ',',subj)
>>                   (eq ',object ',',obj)
>>                   (have ',',subj))
>>              ,@',rest)
>>             (t '(i cant ,',command like that.)))))
>>
>> (game-action weld chain bucket attic
>>   (cond ((and (have 'bucket) (setf *chain-welded* 't)) '(the chain is now securely welded to the bucket.))
>>         (t '(you do not have a bucket.))))
>
> umm, isn't GAME-ACTION a macro that generates a macro?  Therefore WELD
> is a macro, so its arguments are unevaluated?  I can see no function
> definition for WELD.

Ok, sorry, I was watching the DEFUN WELD on the action.html page, and
not the macro generated by GAME-ACTION.


But then I see nothing wrong with it one way or the other:

[93]> (macroexpand '(weld chain bucket))
(IF
 (AND (EQ *LOCATION* 'ATTIC) (EQ 'CHAIN 'CHAIN) (EQ 'BUCKET 'BUCKET)
  (HAVE 'CHAIN))
 (COND
  ((AND (HAVE 'BUCKET) (SETF *CHAIN-WELDED* 'T))
   '(THE CHAIN IS NOW SECURELY WELDED TO THE BUCKET.))
  (T '(YOU DO NOT HAVE A BUCKET.)))
 '(I CANT WELD LIKE THAT.)) ;
T
[94]> (weld chain bucket)
(I CANT WELD LIKE THAT.)
[95]> 


[96]> (macroexpand '(weld 'chain 'bucket))
(IF
 (AND (EQ *LOCATION* 'ATTIC) (EQ ''CHAIN 'CHAIN) (EQ ''BUCKET 'BUCKET)
  (HAVE 'CHAIN))
 (COND
  ((AND (HAVE 'BUCKET) (SETF *CHAIN-WELDED* 'T))
   '(THE CHAIN IS NOW SECURELY WELDED TO THE BUCKET.))
  (T '(YOU DO NOT HAVE A BUCKET.)))
 '(I CANT WELD LIKE THAT.)) ;
T
[97]> (weld 'chain 'bucket)
(I CANT WELD LIKE THAT.)
[98]> 



There may be a bug in the implementation used on the handling of ,@',rest
Rewriting GAME-ACTION to avoid it may circumvent it:


(defspel game-action (command subj obj place &rest rest)
  `(defspel ,command (subject object)
     `(cond ((and (eq *location* ',',place)
                  (eq ',subject ',',subj)
                  (eq ',object ',',obj)
                  (have ',',subj))
             ,@',rest)
            (t '(i cant ,',command like that.)))))

Let's rewrite it as:

(defspel game-action (command subj obj place &rest rest)
  (list
   'defspel
   command
   '(subject object)
   (list
    'list
    ''cond
    (list
      'list*
      (list
       'list
       ''and
       (list 'list ''eq ''*location* (list 'quote (list 'quote place)))
       (list 'list ''eq 'subject     (list 'quote (list 'quote subj)))
       (list 'list ''eq 'object      (list 'quote (list 'quote obj)))
       (list 'list ''have            (list 'quote (list 'quote subj))))
     (list 'quote  rest))
    (list 'list ''t
          (list 'list ''quote
                (list 'quote (list 'i 'cant command 'like 'that.)))))))
GAME-ACTION
[180]> (game-action weld chain bucket attic
  (cond ((and (have 'bucket) (setf *chain-welded* 't)) '(the chain is now securely welded to the bucket.))
        (t '(you do not have a bucket.))))
WELD
[181]> (macroexpand-1 '(weld chain bucket))
(COND
 ((AND (EQ *LOCATION* 'ATTIC) (EQ CHAIN 'CHAIN) (EQ BUCKET 'BUCKET)
   (HAVE 'CHAIN))
  (COND
   ((AND (HAVE 'BUCKET) (SETF *CHAIN-WELDED* 'T))
    '(THE CHAIN IS NOW SECURELY WELDED TO THE BUCKET.))
   (T '(YOU DO NOT HAVE A BUCKET.))))
 (T '(I CANT WELD LIKE THAT.))) ;
T
[182]> (weld chain bucket)
(I CANT WELD LIKE THAT.)
[183]> 


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
Wanna go outside.
Oh, no! Help! I got outside!
Let me back inside!
From: ex
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <1157513756.397228.21660@i42g2000cwa.googlegroups.com>
Thank you Pascal
The macro works now, (no *compiling* error) but now there is a logical
error that doesnt let me weld the chain with the bucket, must be as you
said Lisp in a Box is bugged.
I'll try with Lisbox that uses CLISP 2.37 and not 2.33 as Lisp in a Box
does.


Pascal Bourguignon wrote:

> There may be a bug in the implementation used on the handling of ,@',rest
> Rewriting GAME-ACTION to avoid it may circumvent it:
>
>
> (defspel game-action (command subj obj place &rest rest)
>   `(defspel ,command (subject object)
>      `(cond ((and (eq *location* ',',place)
>                   (eq ',subject ',',subj)
>                   (eq ',object ',',obj)
>                   (have ',',subj))
>              ,@',rest)
>             (t '(i cant ,',command like that.)))))
>
> Let's rewrite it as:
>
> (defspel game-action (command subj obj place &rest rest)
>   (list
>    'defspel
>    command
>    '(subject object)
>    (list
>     'list
>     ''cond
>     (list
>       'list*
>       (list
>        'list
>        ''and
>        (list 'list ''eq ''*location* (list 'quote (list 'quote place)))
>        (list 'list ''eq 'subject     (list 'quote (list 'quote subj)))
>        (list 'list ''eq 'object      (list 'quote (list 'quote obj)))
>        (list 'list ''have            (list 'quote (list 'quote subj))))
>      (list 'quote  rest))
>     (list 'list ''t
>           (list 'list ''quote
>                 (list 'quote (list 'i 'cant command 'like 'that.)))))))
From: Pascal Bourguignon
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <87pse963xj.fsf@thalassa.informatimago.com>
"ex" <·······@gmail.com> writes:

> Thank you Pascal
> The macro works now, (no *compiling* error) but now there is a logical
> error that doesnt let me weld the chain with the bucket, must be as you
> said Lisp in a Box is bugged.
> I'll try with Lisbox that uses CLISP 2.37 and not 2.33 as Lisp in a Box
> does.

Well, you should check the conditions in the game for the welding to
occur.  You need to have the pieces and tools in your possession in
the right location.


LISP> (weld chain bucket)
(I CANT WELD LIKE THAT.)
LISP> (inventory)
NIL
LISP> (look)
(YOU ARE IN THE ATTIC OF THE ABANDONED HOUSE. THERE IS A GIANT WELDING TORCH IN
 THE CORNER. THERE IS A STAIRWAY GOING DOWNSTAIRS FROM HERE.)
LISP> (walk downstairs)
(YOU ARE IN THE LIVING-ROOM OF A WIZARD 'S HOUSE. THERE IS A WIZARD SNORING
 LOUDLY ON THE COUCH. THERE IS A DOOR GOING WEST FROM HERE. THERE IS A STAIRWAY
 GOING UPSTAIRS FROM HERE. YOU SEE A WHISKEY-BOTTLE ON THE FLOOR. YOU SEE A
 BUCKET ON THE FLOOR.)
LISP> (pickup bucket)
(YOU ARE NOW CARRYING THE BUCKET)
LISP> (walk west)
(YOU ARE IN A BEAUTIFUL GARDEN. THERE IS A WELL IN FRONT OF YOU. THERE IS A DOOR
 GOING EAST FROM HERE. YOU SEE A FROG ON THE FLOOR. YOU SEE A CHAIN ON THE
 FLOOR.)
LISP> (pickup chain)
(YOU ARE NOW CARRYING THE CHAIN)
LISP> (walk east)
(YOU ARE IN THE LIVING-ROOM OF A WIZARD 'S HOUSE. THERE IS A WIZARD SNORING
 LOUDLY ON THE COUCH. THERE IS A DOOR GOING WEST FROM HERE. THERE IS A STAIRWAY
 GOING UPSTAIRS FROM HERE. YOU SEE A WHISKEY-BOTTLE ON THE FLOOR.)
LISP> (walk upstairs)
(YOU ARE IN THE ATTIC OF THE ABANDONED HOUSE. THERE IS A GIANT WELDING TORCH IN
 THE CORNER. THERE IS A STAIRWAY GOING DOWNSTAIRS FROM HERE.)
LISP> (weld chain bucket)
(THE CHAIN IS NOW SECURELY WELDED TO THE BUCKET.)
LISP> 

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"You question the worthiness of my code? I should kill you where you
stand!"
From: ex
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <1157519333.523470.237930@e3g2000cwe.googlegroups.com>
> Well, you should check the conditions in the game for the welding to
> occur.  You need to have the pieces and tools in your possession in
> the right location.

Of course!  As I said this works on the telnet session. Now I
downloaded Lispbox 0.7 and it loads the file fine: (load
"F:\\...\\spels.lisp")
If I enter (weld chain bucket) no *compile* error happens. I can walk
and look normally. So don't need to redefine game-action macro, but
when I get the chain and the bucket and go to the attic to welding
another error comes.... :( seems for me that you really need to use the
franz trial edition or maybe you guys run only *nix systems.
From: Pascal Bourguignon
Subject: Re: "Casting SPELs in Lisp" doesn't work on "Lisp in a Box"
Date: 
Message-ID: <87lkox5y0m.fsf@thalassa.informatimago.com>
"ex" <·······@gmail.com> writes:

>> Well, you should check the conditions in the game for the welding to
>> occur.  You need to have the pieces and tools in your possession in
>> the right location.
>
> Of course!  As I said this works on the telnet session. Now I
> downloaded Lispbox 0.7 and it loads the file fine: (load
> "F:\\...\\spels.lisp")
> If I enter (weld chain bucket) no *compile* error happens. I can walk
> and look normally. So don't need to redefine game-action macro, but
> when I get the chain and the bucket and go to the attic to welding
> another error comes.... :( 

Well, if you  don't tell us anything more about  this error, it should
mean you don't need help to debug it.


> seems for me that you really need to use the
> franz trial edition or maybe you guys run only *nix systems.

Indeed.  But the error you get most probably doesn't depend on the OS.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"By filing this bug report you have challenged the honor of my
family. Prepare to die!"