logoalt Hacker News

eterm12/09/20240 repliesview on HN

Here's one way to maybe make it less counter-intuitive:

We have a set of items X1, X2, X3, ... etc.

Each of X1, X2, X3 differently matches conditions A, B, C, D, etc.

Think of "All" as: A AND B AND C AND D AND...

Each term we add we further restricts the result-set.

Thus if we start with lots of conditions, as we remove conditions, we increase the matching results, until we remove all conditions, and "All([])" matches everything, i.e. is vacuously true.

Likewise, think of "Any" as: A OR B OR C OR D.

Here, as we increase the number of conditions, we increase how many things match, thus "Any" on an empty set returns nothing, i.e. is vacously false.