gpt4 book ai didi

lisp - 如何将列表列表传递给函数?

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

(defun square (n) (* n n))

(defun distance (a b)
(let (
(h (- (second b) (second a)))
(w (- (first b) (first a))))

(sqrt (+ (square h) (square w)))
)
)
(defun helper-2 (head)
(if (null (first (rest head))))
0
(+
(distance (car head) (first (rest head)))
(helper-2 (rest head))
)

我已经编写了这段代码。我的问题是如何使用 helper-2 方法?我试过了

(helper-2 '((2 0) (4 0)))
(helper-2 '(2 0) '(4 0)) neither works. Could anyone help? Thanks.

最佳答案

请剪切并粘贴 my previous answer 中的代码并逐字使用。在这里,您实际上对代码做了一些更改以使其不正确:而不是原来的单臂 if,您使它变得更糟,零臂 if.

一个格式正确的双臂 if 表达式看起来像这样(注意 expr1expr2 应该齐平(缩进与) test):

(if test
expr1
expr2)

这意味着如果 test 的计算结果为真值(nil 以外的任何值),则 expr1 被计算,其值为if 表达式的值;否则使用 expr2 代替。在我的代码片段中,test(null (first (rest list)))expr10,而 expr2(+ (distance (car list) (first (rest list))) (helper-2 (rest list)))


直接使用我的代码片段的另一个好处是,它已经针对 standard Lisp style 进行了正确格式化。 ,这使得其他 Lisp 程序员阅读起来更加愉快。

关于lisp - 如何将列表列表传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942585/

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