我在球拍和MIT方案中尝试以下代码,令我惊讶的是编译器抛出err
(foldr and #t '(#t #t #f))
有什么方法可以使用reduce / fold方法来检查列表是否仅包含true或false?
我知道lambda可以完成这项工作,但确实让我们怀疑为什么这不是有效的代码。
我记得我可以在Haskell .....
TIA。
最佳答案
and
是一个宏,因此它本身没有值。具体来说,它会缩短评估,并且按您的意愿使用评估将毫无意义。因此,Racket具有andmap
,您可以在这种情况下使用。 (其他实现在不同名称下具有相似的功能-例如,srfi-1使用every
。)
关于scheme - 如何检查列表是否仅包含#t,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5859584/