레이블을 사용하는 로컬 함수를 사용하여 함수를 재귀 적으로 사용할 수 있습니다.사용하기 전에 Lisp 레이블 기능이 삭제되었습니다.
(defun my-replace (e1 e2 L)
"Perform a deep replace e1 with e2 in L."
(labels ((my-replace-rec (e1 e2 L)
"Used for recursion"
(cond ((endp L) nil)
((equal (car L) e1) (cons e2 (cdr L)))
((listp (car L)) (my-replace-rec e1 e2 (car L)))
(t (my-replace-rec e1 e2 (cdr L)))))))
(my-replace-rec e1 e2 L))
나는 점액 함수를 계산하고 그것을 실행하려고 있습니다 : 이 코드입니다
; Note: Deleting unused function
; (LABELS MY-REPLACE-REC)
; ;
; Warning: This function is undefined:
; MY-REPLACE-REC
나는 내가 할 수있는 등의 오류 메시지의 정도에 맞지하려고하지만 Emacs (저는 아직도 아주 새로워졌습니다)와 작은 버퍼를 붙여 넣으려고 노력하고 있습니다.
왜 이런 일이 발생합니까? 그것은 정의되고 사용되었지만 사용되기 전에 (사용되지 않았기 때문에) 계속 삭제 된 것 같습니다.