[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: newbie questions: why doesn't ((lambda (x) (x 2)) (lambda (n) (+ n 3
From: |
Joost Diepenmaat |
Subject: |
Re: newbie questions: why doesn't ((lambda (x) (x 2)) (lambda (n) (+ n 3))) work in elisp? |
Date: |
Fri, 30 May 2008 23:27:43 +0200 |
User-agent: |
Gnus/5.101 (Gnus v5.10.10) Emacs/23.0.60 (gnu/linux) |
Tahsin Alam <tahsin.alam@db.com> writes:
> As the subject says - why does the following expression give error when I try
> to evaluate it in the *scratch* buffer?
>
> ((lambda (x) (x 2)) (lambda (n) (+ n 3)))
Because ((some call evaluating to a function)) isn't valid in emacs
lisp, which also means
(lambda (x) (x 2))
has no real meaning in elisp (it does in scheme, but not in elisp or
common lisp, because elisp and cl have separate namespaces for
functions and variables). You want either
(funcall (lambda (x) (funcall x 2)) (lambda (n) (+ n 3)))
or possibly
(list (lambda (x) (list x 2)) (lambda (n) (+ n 3)))
or some permutation of both.
--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
- Re: newbie questions: why doesn't ((lambda (x) (x 2)) (lambda (n) (+ n 3))) work in elisp?,
Joost Diepenmaat <=