gpt4 book ai didi

recursion - Lisp 中的递归加法

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

我是初学者,正在尝试自学 Common Lisp,在自学期间,我编写了一个函数,我认为它应该适用于两个参数的递归相加。但是,该功能总是失败。这是为什么?

(defun sum (n m)
;;;Returns the sum of n and m using recursion
(cond ((eq m 0) n))
(sum (1+ n) (1- m)))

按照我的理解,应该是不断的给n加1,同时递减m,直到m为0,此时递归加法就完成了

最佳答案

我认为你有 2 个简单的错别字:

  1. 一个括号太多了
  2. cond 子句中缺少 t

你的意思可能是:

(defun sum (n m)
(cond
((eq m 0) n) ; here you had one parenthesis too many
(t (sum (1+ n) (1- m))))) ; here you were missing the `t` symbol

关于recursion - Lisp 中的递归加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25997460/

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