[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

slightly off topic: LISP



OK, all you LISPers got me off my duffus to take a LISP tutorial. So, can you please email me off-list with answers to this question?

I don't understand something, but I'm not sure what I am missing: it seems to be either the QUOTE or the REST function. I will show you what I think ought to be the evaluation of this function, (which is NOT what the LISP evaluator yields) and you tell me what I am missing:



(REST (REST '(1 2 3 4)))
|(REST '(1 2 3 4))
| '(1 2 3 4)
| --> (1 2 3 4)
|--> (2 3 4)
--> Error, 2 is not a function

Of course, the lisp evaluator yields the following:

(REST (REST '(1 2 3 4)))
|(REST '(1 2 3 4))
| '(1 2 3 4)
| --> (1 2 3 4)
|--> (2 3 4)
--> (3 4)
(3 4)

In other words, why does the outer REST accept the return of the inner REST without an intervening QUOTE? Is the quote passed on? Or, does the QUOTE serve to type the inner list as a non-function, after which time, the return value of REST is typed as non-function?

I just don't get the proper conceptualization on this point.

TIA,

James Rothering


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com



Reply to: