gpt4 book ai didi

LISP-简单的功能,语法错误?

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

我目前正在尝试学习 lisp 并在 Linux 上使用 emacs。尽我所能,我写了两个函数。

这两个函数首先删除列表的第一个元素。

  • series 添加给定列表中的所有元素。
  • 并行 1) 取列表中每个数字的倒数,然后 2) 添加列表中的所有元素,然后 3) 取元素之和的倒数。

代码:

(defun series (lst)
(apply #'+' (cdr lst)) )

(defun parallel (lst)
(/ 1 (apply #'+' (apply #'/' (cdr 'lst ) ) ) ))

我可以评估这个函数,但是当我尝试使用这个函数时,如下所示:

(series (list 3 3 4 5))

我得到错误:值 CDR 不是预期的类型 NUMBER。 我看到这个,我想,为什么 emacs 将 cdr 视为一个数字而不是一个函数?我是 lisp 和 emacs 的新手,所以我不知道如何修复这个错误。任何帮助将不胜感激。


更新

我在这段代码中遇到了问题,但我认为它可以工作...

(defun series (lst)
(apply #'+ (cdr lst) ))

(defun parallel(lst)
(/ 1 (apply #'+ (mapcar #'/ (make-list (- (length lst) 1) :initial-element 1) (cdr lst) ) )))

希望现在大家能理解我试图做的事情。

最佳答案

你有额外的撇号,混淆了 LISP 解析器。引用+ 函数的语法只是#'+;没有“关闭报价”。

关于LISP-简单的功能,语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441308/

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