Common Lisp에 익숙하고 Scheme을 익히기 위해 Common Lisp에서 일반적으로 코딩하는 것들에 Scheme을 사용하는 방법을 이해하려고 노력했습니다.변수의 값이 Scheme의 프로 시저에 바인딩 된 심볼인지 어떻게 알 수 있습니까?
Common Lisp에는 기호 (변수 값)가 함수에 바인딩되어 있는지 알려주는 fboundp
이 있습니다. 그래서, 나는 이것을 할 것이다 :
(let ((s (read)))
(if (fboundp s)
(apply (symbol-function s) args)
(error ...)))
Scheme에서 가능한가? 나는 R6RS 사양에서 이것을 찾으려고 노력하고 있었지만 비슷한 것을 찾지 못했다.
안녕하세요, 작동합니다! :-) 그리고 결과를 변수 p에 저장 한 후에 "(p ag1 arg2)"처럼 프로 시저로 사용할 수 있습니다. 감사합니다. – Jay
은 CL (SBCL)에서 작동하지 않습니다. 언 바운드 기호에서 _eval_가 호출되면 오류가 발생하기 때문입니다. CL에서는 _boundp_ – dbow
@dbow를 사용해야합니다. 이미 Common Lisp에서 boundp와 fboundp를 사용하고 있다는 질문이 있습니다. 질문은 * Scheme *에서 그렇게하는 방법이었습니다.이 대답은 직접 대답을 – xdavidliu