以下是相关代码:
Racket 返回:
对于以下代码:
(foldl and #t '(#t #f))
Racket 返回:
and: bad syntax in: and
我知道 and
不是一个函数。我可以使用 lambda
来规避这个问题:
(foldl (lambda (a b) (and a b)) #t '(#t #f))
我这里有两个问题:
and
不是一个函数。那它是什么?是一个宏吗?我使用
lambda
的解决方案看起来很丑陋。有没有更好的方法来解决这个问题?
谢谢。
(foldl (cut and <> <>)#t'(#t #f))
吗? 但是,SRFI-26 也说(cut if <> 0 1)
是非法的,因为if
不是“在R5RS意义上的表达式”,这似乎也使得and
在那里不合法。 - Will Ness