use*_*736 7 scheme racket
我在球拍和麻省理工学院计划中尝试使用以下代码,让我惊讶的是编译器错误
(foldr and #t '(#t #t #f))
有没有办法使用reduce/fold方式来检查列表是否只包含true或false?我知道lambda可以完成这项工作,但它确实让我们想知道为什么这不是一个有效的代码.我记得我可以在Haskell中做到.....
TIA.
Eli*_*lay 8
and是一个宏,因此它本身没有值.具体来说,它会短路评估,并且在您尝试使用它时没有任何意义.出于这个原因,andmap在这种情况下你可以使用Racket .(其他实现在不同的名称下具有类似的功能 - 例如,srfi-1使用every.)
and
andmap
every
kni*_*vil 7
并且是一个宏,不能用作函数.把它放在一个函数中:
(foldr (lambda (a b) (and a b)) #t '(#t #t #f))
归档时间:
14 年,6 月 前
查看次数:
3906 次
最近记录:
14 年,5 月 前