我熟悉Common Lisp的,並試圖瞭解一些方案,所以我一直在試圖理解我怎麼會使用計劃的東西,我通常代碼Common Lisp中。如何判斷一個變量的值是否是綁定到Scheme中某個過程的符號?
Common Lisp中有fboundp
,它告訴我,如果一個符號(變量的值)被綁定到一個函數。所以,我會這樣做:
(let ((s (read)))
(if (fboundp s)
(apply (symbol-function s) args)
(error ...)))
在Scheme中可能嗎?我一直試圖在R6RS規範中找到它,但沒有發現類似的東西。
嘿,這工作! :-)在將結果存儲在變量p中之後,我可以將它用作過程,如「(p ag1 arg2)」中所示。 謝謝! – Jay 2009-09-21 09:46:05
在CL(SBCL)中不起作用,因爲在未綁定符號上調用_eval_會導致錯誤。在CL應該使用_boundp_ – dbow 2017-08-05 18:05:22
@dbow問題已經指出,在Common Lisp中使用boundp和fboundp;問題是如何在*計劃*這樣做,而這個答案直接回答它 – xdavidliu 2018-03-02 18:51:54