It helps to think in terms of `any` first:<p><pre><code> any([], predicate) => false
</code></pre>
This is plainly obvious, because it is illogical to say "the predicate is true for at least one member of the empty set".<p>If we can agree on that, then all([], predicate) must be true, because the complement of all(list, predicate) is any(list, predicate')<p>The naive assumption is that the complement of all(list, p) is all(list, p'), but this is demonstrably false, because in the case of an empty list: all([], e => e) and all([], e => !e) would both return the same value.<p><pre><code> > [[], [true], [false]].map(s => s.every(e => e) == !s.every(e => !e))
[ false, true, true ]
</code></pre>
Instead, its proper complement is any(list, p'), which means that all(list, p) = !any(list, p')<p><pre><code> > [[], [true], [false]].map(s => s.every(e => e) == !s.some(e => !e))
[ true, true, true ]
</code></pre>
So, for all([], p) to be false, any([], p') would have to be true, which makes even less sense than all([], p) => true.