|
|
|
|
|
by loqi
4232 days ago
|
|
It's been sorta mentioned elsewhere on the thread, but there is another (IMO simpler) mathematical intuition behind 0:1 :: false:true that doesn't involve any lambda fundamentalism. It's the algebraic analogy disjunction:conjunction :: addition:multiplication :: union:intersection :: ... which also turns up pretty often in computing. For instance, if you've got anything like regular expressions, then you've got something with a structure where the "unit" (trivial match) is an identity for sequencing, and the "zero" (failed match) is an identity for disjunction and a zero for sequencing. It's not exactly a formal argument for preferring booleans to loobeans, but a failed regex match sure feels like a "false" to me. I don't doubt that it's not worth changing at this point, but don't throw the semiring baby out with the lambda bathwater. |
|