gpt4 book ai didi

lisp - 帮助使用 Lisp 调试器

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:32 26 4
gpt4 key购买 nike

我正在尝试了解如何解释和使用 Lisp 调试器的输出。

我有一个非常简单的回溯来评估我的函数,但我似乎无法弄清楚如何使用它来找出异常发生在我的函数中的哪个 Lisp“形式”。

对于我应该做什么的任何线索,我将不胜感激,以找出我的代码中错误的来源。

另外 - 为什么第二帧显示为“没有可用于帧的调试信息”?

我附上了调试器和 repl 的屏幕截图(我还在下面包含了我的函数 - 我知道这是非常错误的 - 但我只是想学习正确使用调试器)。另外,我在第一帧点击'v'进入源,但这导致了repl下面的错误。 (编辑 - 通过下载并将其复制到正确的路径来修复丢失的源代码问题)

alt text

(糟糕的功能 - 请不要评论!)

(defun myquicksort2 (lst)
(if (eql 1 (length lst))
lst
(let ((mid (middle lst)))
(do ((i 0 (+ i 1)))
((>= i mid) (append (myquicksort2 (subseq lst 0 mid))
(myquicksort2 (subseq lst mid (length lst)))))
(if (> (ltval i lst) (nth 100 lst))
(let ((tmp (ltval i lst)))
(setf (nth i lst) (gtval i lst))
(setf (nth (- (- (length lst) i) 1) lst) tmp)))))))

(defun ltval (i lst)
(nth i lst))

(defun gtval (i lst)
(nth (- (- (length lst) i) 1) lst))

(defun middle (lst)
(round (/ (length lst) 2)))

最佳答案

错误与>有关而你只有一个 >在您的来源中,所以这就是问题所在。

编辑 内置 CL 函数很容易在 SBCL 中进行优化,因此尽管您代码中的函数调用是 CL:< ,实际调用的代码(并显示在调试器中)来自经过优化的特定 SBCL 内部例程。这对于用户定义的函数来说不是什么大问题,您将更有可能获得有用的框架。

关于lisp - 帮助使用 Lisp 调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4640705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com