我遇到了这种奇怪的行为:
{{1}}
列表就是这样...
我应该返回 false 而不是 true 。
这种功能设计的原因是什么?
答案 0 :(得分:9)
大多数语言中具有every?
和not-any?
等函数的一般规则是,当给定空数组时,它们返回标识值。这可确保在对数组的子集组合操作时获得相同的结果。规则是
(and (every? true? array1) (every? true? array2))
应返回与
相同的内容(every? true? (concat array1 array2))
如果every?
为空数组返回false
,则当两个数组中的任何一个为空时,这将破坏等效性。
同样,not-any?
为空数组返回false
以确保
(not-any? true? (concat array1 array2))
与
相同(or (not-any? true? array1) (not-any? true? array2))