Scheme syntax seems very lambda-expression-friendly. I can do this

(define blah
   (lambda (n) (* n n)))

But this isn't possible in elisp. I can do this

(defun simple (x)
  ((lambda (n) (* n n)) x))

but of course not this

(defun simple
   (lambda (n) (* n n)))

or this

defun simple ()
       (lambda (n) (* n n)))

Hence, elisp seems a step removed from the Scheme world of "purer" lambda expressions . . . or am I, the beginner, missing something here . . . or is this not a big deal, i.e., there's nothing gained with the Scheme way of doing lambda.

1 Answer 1


It's not a big deal. You can still:

(setq blah-1
      (lambda (n) (* n n)))
(funcall blah-1 3)
;; => 9
(fset 'blah-2 (lambda (n) (* n n)))
(blah-2 3)
;; => 9

Basically, Elisp is LISP-2, and Scheme is LISP-1.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.