我熟悉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