gpt4 book ai didi

lisp - 函数和二元运算

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

我想创建一个函数:OP 从 i=np = f(i)OP是二元运算符

这是我的功能

(defun sigmaOP (f o n p)
(loop for i from n to p do
(let (val (o (val (funcall f i))))
)
val
)

f 是一个函数o 是运算符(operator)n是开始,p是结束

调用我使用

(sigmaOP (lambda (x) (* 2 x)) '+ 1 3)

但是没用o 参数不被视为运算符。如果我删除 o 并且取而代之的是 + 或 *,...

,则此函数有效

谢谢

最佳答案

运算符也是要调用的函数,因此您需要在 o 之前加上 funcall,或者将其用作调用中的参数,例如减少。您是否正在考虑这样的事情?

(defun sigmaOP (f o n p)
(reduce o
(loop for i from n to p
collect (funcall f i))))

调用:

(sigmaOP (lambda (x) (* 2 x)) #'+ 1 3)

关于lisp - 函数和二元运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12618701/

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