loops - LISP 遍历列表

标签 loops lisp common-lisp

我有一个函数“power”,它给出数字的平方,而其他函数需要对列表中的每个数字的平方求和。但它告诉我未定义的函数我和我真的不能让它工作。

(defun power (x)
  (if (numberp x) (* x x) 0)
)
(defun sum (l)
  (loop for i in l do(setq s(+ (power (i)) s)))
    print s)

最佳答案

例子:

CL-USER 12 > (loop for i in '(1 2 3 4) sum (power i))
30

CL-USER 11 > (reduce #'+ '(1 2 3 4) :key #'power)
30

CL-USER 14 > (defun sum (l &aux (sum 0))
               (dolist (i l sum)
                 (incf sum (power i))))
SUM

CL-USER 15 > (sum '(1 2 3 4))
30

关于loops - LISP 遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29331929/

相关文章:

functional-programming - 证明 LISP 没有功能

performance - Lisp:衡量函数的性能

error-handling - 如何访问:cause, :via and :trace keys of an exception in Clojure?

lisp - 普通口齿不清 : making rules about input values

javascript - 在 .onclick 函数的方法中调用选定的循环元素

Python all()/any() 类方法用于列表的一部分/一部分?

bash - 剪切命令包含一个令人困惑的 head 命令的空格?

c++ - 带有 "subtree"的 QTreeWidgetItemIterator

lisp - ecl_init_module 中的第一个参数是做什么的?

lisp - 检查适当的子集