gpt4 book ai didi

functional-programming - 方案括号

转载 作者:行者123 更新时间:2023-12-04 00:18:08 29 4
gpt4 key购买 nike

任何人都可以帮助我发现以下在列表中查找最小值和最大值并将它们作为列表返回的方法有什么问题吗?它应该在逻辑上工作。我想括号有问题。

(define (find-min-and-max my-list)
(find-min-max-rec (car my-list) (car my-list) my-list)
)

(define (find-min-max-rec smallest largest ls)
(if (null? ls)
(list smallest largest)
)
(cond
((and (< smallest (car ls)) (> largest (car ls)) ) (find-min-max-rec (car ls) (car ls) (cdr ls)))
((< smallest (car ls)) (find-min-max-rec (car ls) largest (cdr ls)))
((> largest (car ls)) (find-min-max-rec smallest (car ls) (cdr ls)))
(else (find-min-max-rec smallest largest (cdr ls)))
)
)

(display (find-min-and-max '(1 2 3 4)))

控制台输出

*** ERROR: pair required, but got ()
While loading "./jdoodle.sc" at line 17
Stack Trace:
_______________________________________
0 (car ls)
at "./jdoodle.sc":10
1 (find-min-and-max '(1 2 3 4))
at "./jdoodle.sc":17
Command exited with non-zero status 70

预期

(1 4)

另外,有什么调试工具可以推荐使用吗?

注意:我一直在这里运行我的代码:https://www.jdoodle.com/execute-scheme-online

最佳答案

是的,实际上你是对的。括号有问题。

这里有一个线索:这个计算结果是什么?

(define (f x)
(if (< x 5) 10)
12)

(f 3)

为什么?

关于functional-programming - 方案括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49092210/

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