重複の可能性:
Elisp でラムダ式を渡す方法
私は次のコードを持っています:
(defun my-map (p l)
(mapcar (lambda (el) (p el)) l))
(defun test ()
(my-map (lambda (x) (+ x 1)) (list 1 2 3)))
(これは例です - 私が書こうとした実際のコードではありません)。関数 p が見つからないと文句を言います。
Debugger entered--Lisp error: (void-function p)
(p el)
(lambda (el) (p el))(1)
mapcar((lambda (el) (p el)) (1 2 3))
my-map((lambda (x) (x + 1)) (1 2 3))
test()
eval((test) nil)
eval-expression((test) nil)
call-interactively(eval-expression nil nil)
recursive-edit()
debug(error (void-variable test))
eval(test nil)
eval-expression(test nil)
call-interactively(eval-expression nil nil
p
aをシンボルとして扱い、外側のスコープに制限された変数ではないと思います。それを機能させる方法は?