所谓不边折叠,我指的是对结合算子的一个假设的本原折叠运算,它不能保证任何顺序。也就是说,(fold + 0 [a b c d])可以是(+ (+ a b) (+ c d)),也可以是(+ (+ (+ a b) c) d)。考虑到这个操作是可融合的、高度可分解的和通用的,我考虑将它与map和concat一起作为我的非递归极简语言的唯一列表原语。我已经成功地用它实现了大多数list函数,但没有实现foldl/foldr本身。有可能吗?
模式匹配(如在例如Prolog、ML系列语言和各种专家系统外壳中发现的)通常通过以严格顺序逐个元素地匹配查询来操作。A or B or CC or $X
从表面语法来看,这并不匹配,但从逻辑上讲,它应该与绑定到A or B的$X匹配,因为or是结合性和交换性的。在任何一种语言中,有没有任何现有的系统可以做这种事情?