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)