如何解决如何执行已存储在变量中的 Lisp 程序?
我有这个代码:
(setf prg '(+ 1 n)) ; define a very simple program
(print prg) ; print the program
我需要添加更多代码,以便在执行上述代码时,应将 n 设置为 1 并执行 程序存储在变量 prg 中。
解决方法
我认为您想这样做:
(setf prg (lambda (n) + 1 n)) ; define a very simple program
(print (funcall prg 1)) ; print the program
在您的示例中:(+ 1 n)
不是有效的 Common Lisp 程序。
编辑:如果你想玩变量绑定,你也可以声明一个变量:
(setf prg '(+ 1 n)) ; define a Common Lisp expression
(defparameter n 1) ; bind a variable to the value 1
(print (eval prg)) ; evaluate the Common Lisp expression
> 2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。