我在球拍和麻省理工学院方案中尝试使用以下代码,令我惊讶的是编译器抛出错误
(foldr and #t '(#t #t #f))
有没有办法使用减少/折叠方式来检查列表是否只包含 true 或 false?
我知道 lambda 可以完成这项工作,但这确实让我们想知道为什么这不是有效的代码。
我记得我可以用 Haskell 做到这一点......
TIA.
and
是一个宏,因此它本身没有值。具体来说,它会短路评估,并且按照您的尝试使用它不会有任何意义。因此,Racketandmap http://docs.racket-lang.org/reference/pairs.html#%28def._%28%28lib._racket/private/map..rkt%29._andmap%29%29在这种情况下你可以使用它。 (其他实现以不同的名称具有类似的功能 - 例如,srfi-1 使用every
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)