lisp - how to return function in elisp -


this related question: elisp functions parameters , return value

(defun avg-damp (n)    '(lambda(x) (/ n 2.0))) 

either

(funcall (avg-damp 6) 10) 

or

((avg-damp 6) 10) 

they gave errors of symbol's value variable void: n , eval: invalid function: (avg-damp 6) respectively.

the reason first form not work n bound dynamically, not lexically:

(defun avg-damp (n)   (lexical-let ((n n))     (lambda(x) (/ x n)))) (funcall (avg-damp 3) 12) ==> 4 

the reason second form not work emacs lisp is, common lisp, a "lisp-2", not "lisp-1"


Comments

Popular posts from this blog

linux - Does gcc have any options to add version info in ELF binary file? -

android - send complex objects as post php java -

charts - What graph/dashboard product is facebook using in Dashboard: PUE & WUE -