Subject: Re: Lambda functions From: Erik Naggum <erik@naggum.net> Date: Sat, 22 Sep 2001 23:40:00 GMT Newsgroups: comp.lang.lisp Message-ID: <3210190796619528@naggum.net> * Kent M Pitman > I don't see anything in the ISO ISLISP spec that suggests that a lambda > expression is a function. Unless you can find a specific passage that > contradicts my belief, I'm pretty sure an implementation is buggy if it > lets you funcall a list whose car is LAMBDA. * Anette Stegmann > That surprises me. I only know old LISP dialects from the time between > 195X and 197X. Has something changed in the meantime? Your reading of what Kent wrote lacks the precision he put into it. > In my understanding a lamda expression is a way to notate a function. > > I am used to code like the following, IIRC: > > > ((lambda (x) (+ x x))2) > 4 > > > (setq f (lambda (x)(+ x x))) > > (f 4) > 8 If you really need exmples, the following form is what Kent was talking about (funcall '(lambda (x) (+ x x)) 3) None of your examples are funcalling a _list_, but are instead funcalling the value of an evaluated expression. Incidentally, the latter of your two examples presupposes a Lisp where functions and variables share the same value space. That is appropriate over in comp.lang.scheme. It is thus either (funcall f 4) or (setf (fdefinition 'f) ...) in a real Lisp. /// -- Why did that stupid George W. Bush turn to Christian fundamentalism to fight Islamic fundamentalism? Why use terms like "crusade", which only invokes fear of a repetition of that disgraceful period of Christianity with its _sustained_ terrorist attacks on Islam? He is _such_ an idiot.