을 LISP는 표준 배합 호출 할 경우 나도 몰라,하지만 난 '렛트'를 사용하는 GNU 설명서에 의해 권고하고 로컬 함수 바인딩 : 그러나하자 이맥스에서 렛트는
(defun adder-with-flet (x)
(flet ((f (x) (+ x 3)))
(f x))
)
을 우연히 나는 let '을 사용하여 변수에 람다 표현식을 묶는 다음 표현식을 Scheme에서 재생 한 후 시도했다. mapcar에 함수를 전달하면 작동한다. * :
(defun adder-with-let (x)
(let ((f (lambda (x) (+ x 3))))
(car (mapcar* f (list x))))
)
두 기능 모두 작동 :
(adder-with-flet 3) ==> 6
(adder-with-let 3) ==> 6
두 번째 이유는 무엇입니까? 'let'을 사용하여 함수를 심볼에 바인딩하는 데 사용할 수있는 설명서를 찾을 수 없습니다.
이 시도는, flet'가있는 경우에는 '('CL을 요구하려고하면 사용중인 이맥스 버전에서 사용하지 못할 수 있습니다 '주의)'('flet'은 CommonLisp입니다.). – Robert
어떤 GNU 매뉴얼은 여기서'flet'을 사용할 것을 권장합니까? – Stefan
이멕스 25.1.1 설명 기능 : flet이 매크로는 24.3 이후 폐기되었습니다. 'cl-flet '또는'cl-letf'를 사용하십시오. – AAAfarmclub