gpt4 book ai didi

Lisp 程序产生契约(Contract)违规

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

我写了一个 lisp 程序,它有两个参数,一个目的地和一个 BST 形式的 map 。它在 BST 中搜索目标号码,如果找到目标则打印 (found: path)。如果未找到,则应该打印(未找到:目的地),但由于某种原因,我违反了契约(Contract)。它没有正确地通过我的 cond 运行,我已经弄乱了它 30 分钟。谁能帮忙。

这是我的程序:

(define (robot goal map)
[code hidden for university honour code purposes]

; Test robot function
(robot 64 '(53 () (64 () ())))
(robot 4 '(53 () (64 () ())))

最佳答案

您在过程 (define (robot map path) ...) 中遗漏了一个案例。如果 map 参数为 null 会怎样?像这样修复它:

(define (robot map path)
(cond ((not (null? map))
[code hidden for university honour code purposes])
(else '()))) ; this line was missing!

这与我在回答您之前的问题时提到的完全相同:无论您是遍历列表还是树,首先要考虑的情况是:如果它为 null 会怎样?

关于Lisp 程序产生契约(Contract)违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202642/

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