Common Lisp 作用域(动态与词法)
编辑:我在第一个答案后更改了示例代码,因为我想出了一个简单的版本,它提出了相同的问题。 我目前正在学习 Common Lisp 的作用域属性。在我认为我有…
嵌入式 ECL Lisp 错误处理
任务:在我的项目中嵌入 ECL lisp,设置错误处理和详细的错误报告(发生的位置、错误类型等) 我尝试这样做: cl_def_c_function_va( c_string_to_obj…
如何更改SBCL的当前目录?
更改CLisp当前工作目录非常容易: >cat ~/.clisprc.lisp ;;; The following lines added by ql:add-to-init-file: #-quicklisp (let ((quicklisp-init…
Common Lisp 中是否存在运行外部程序的标准方法?
在 clisp 中,以下代码有效: (defun hit-history () (shell "tail ssqHitNum.txt")) 但是,在 Clozure CL 中,不支持 shell 函数!…
Lisp - 修改 A* 以检查最佳成本,接收目标节点列表
我正在尝试修改现有的爬山函数,该函数采用两个节点名称(例如 A 和 E),并具有一个递归使用的可选参数(队列)。我正在尝试定义一个“更便宜”的函…
Common Lisp 二叉树
我正在尝试使用 GNU ClISP 在 Common Lisp 中编写一个程序来编译它。我想输入一个列表,例如 (A(B (C) ()) (D (E) (F (G) ()))) 并根据第一个单词打印…
检查 lisp SLIME 调试器中的变量
我试图在确定的断点处检查变量的值。这是我的简化代码: (defun foo () (maplist (lambda (var) (break) var) '(a b c))) slime 此时进入调试器模式。…
在 lambda 函数中递归
我有以下两个功能,我希望将其合并为一个: (defun fib (n) (if (= n 0) 0 (fib-r n 0 1))) (defun fib-r (n a b) (if (= n 1) b (fib-r (- n 1) b (+…
Common lisp,未定义的交集函数行为?
根据 INTERSECTION 函数的 CLHS 条目 (http://www.lispworks.com/文档/HyperSpec/Body/f_isec_.htm): 对于满足测试的每一对,恰好是两个元素之一 该…
帮助理解 lisp 中的这一行
(defun dump-db () (dolist (cd *db*) (format t "~{~a:~10t~a~%~}~%" cd))) dolist 让它使用变量 cd 遍历列表 *db* 的每个元素,对吗? 和 ~a 表示以…