gpt4 book ai didi

lisp - 计算列表中的数字

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

有没有人可以帮我用普通的 LISP 编写一个函数来计算列表中的数字?我写的代码在下面,但是它不起作用!

(defun count-numbers(lst)
(let(result()))
(dolist(number lst)
(push number result))
(length result))

例如,当我输入此查询时 "(count'(r 4 f d w 2 3 4 1 z))",我必须得到 5。

最佳答案

既然是作业,我就指点一下吧。第一:简单。如果您是 Common-Lisp 的新手,只需使用它的基本功能即可。例如:递归。纯功能风格。想想这样的事情:

(defun count (list counter) 
;; something
)

我们首先检查列表。如果它是空的,我们已经检查了所有元素,所以我们返回 counter。如果 list 不为空,我们

  1. 取第一个元素
  2. 我们检查它是否是一个数字
  3. 这是一个数字!我们对列表的其余部分递归调用 count 并使用 counter = counter + 1
  4. 这不是数字!我们递归调用 count 列表的其余部分,counter 与之前相同

使用(numberp n)。如果 n 是一个数字,它返回 T,否则返回 NIL。

关于lisp - 计算列表中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11509434/

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