gpt4 book ai didi

lisp - Common Lisp中的两个求和函数有什么区别,谢谢

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

两个代码示例都是求和公式的: Code examples are for the summation formula

代码示例 1

(defund sigma (func n)
(cond ((= n 1)(funcall func 1)
(t (+ (sigma func(1- n))
(funcal func n))))))

代码示例 2

(defund sigma(n)
(cond ((= n 1)1)
(t (+ n(sigma func(1- n))))

最佳答案

Both code examples are the for the summation formula

不,他们没有。当第二个对数字求和时,第一个调用一个以数字作为参数的函数并对结果求和。它在数学符号中的 sigma 之后会有 f(i) 而不是 i。在高阶函数术语中,它是一个术语函数。以下是使用 10 的一些示例:

(sigma (lambda (v) 1) 10) ; ==> 10 in CL I'd use (sigma (constantly 1) 10)
(sigma #'1+ 10) ; ==> 65
(sigma #'identity 10) ; ==> 55

第二个只会产生第三个例子:

(sigma 10) ; ==> 55

PS:您的函数有语法错误和拼写错误,我刚刚忽略了。你需要在它工作之前修复这些。最难的可能是第一个 cond 项中缺少结束括号,这使得 cond 只有一个项,第二个函数也传递 func,这没有意义,因为它的版本只接受一个参数。

关于lisp - Common Lisp中的两个求和函数有什么区别,谢谢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53017838/

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