Scheme reduce上的方案使用与算子

Scheme reduce上的方案使用与算子,scheme,racket,Scheme,Racket,我正在尝试对reduce使用逻辑操作,例如: (reduce and '(#t #t #t) 0) 这给了我一个错误,我不知道为什么 (reduce + '(1 2 3) 0) 这很好,但是当我尝试使用内置的和操作时,它失败了。 有人能解释一下为什么这个不行吗?我被迫在逻辑运算中使用reducereduce需要一个函数作为其第一个参数,而和是一种特殊形式。由于特殊形式不是第一类对象,因此它们不能用作函数的参数(或存储在变量中) 在这种情况下,reduce的替代方法是 (every ident

我正在尝试对
reduce
使用逻辑操作,例如:

(reduce and '(#t #t #t) 0)
这给了我一个错误,我不知道为什么

(reduce + '(1 2 3) 0)
这很好,但是当我尝试使用内置的
操作时,它失败了。

有人能解释一下为什么这个不行吗?我被迫在逻辑运算中使用
reduce

reduce
需要一个函数作为其第一个参数,而
是一种特殊形式。由于特殊形式不是第一类对象,因此它们不能用作函数的参数(或存储在变量中)

在这种情况下,
reduce
的替代方法是

(every identity list-of-booleans)


(reduce或…
)的有效替代品,并且正如Terje D所说,
不是一个函数,但你可以自己传递:
(foldl(lambda(xy)(和xy))#t'(#t#t))
返回
\t
:-)几乎是
每一个
任何标准方案函数/结构。像
reduce
一样,它们在@Terje D中指定。我需要使用reduce函数。我想我可以用我自己的方式工作,因为我知道并且是一个特殊的形式,而不是一个操作员。做我自己的,我想会更容易。。非常感谢你
(any identity list-of-booleans)