gpt4 book ai didi

LISP 列表项的总和

转载 作者:行者123 更新时间:2023-12-04 07:42:44 26 4
gpt4 key购买 nike

我写了这个重写的宏,例如(sum-expr (1 2 3))(+ 1 2 3) :

(defmacro sum-expr (expr-list)
`(+ ,@expr-list))

=> SUM-EXPR
例如:
(sum-expr ((+ 1 3) (* 3 4) (- 8 4)))

=> 20
如何使用 defun 定义等效函数?

最佳答案

正如@LeonardoDagnino 已经在评论中提到的那样:

(defun sum-expr (lst)
(apply #'+ lst))
会非常流畅,但依赖于实现 CALL-ARGUMENTS-LIMIT在某些实现中限制 lst 的长度如所讨论的 50,例如 here .所以,用 reduce的解决方法更干净。

关于LISP 列表项的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67370647/

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