4 ms·
Point-free notation is used here mainly as a device for obscuring notation. A function "f x g" pairs up f and g and applies them separately to a tuple of argum
by tom_mellior 6y ago
Point-free notation is used here mainly as a device for obscuring notation.
A function "f x g" pairs up f and g and applies them separately to a tuple of arguments: (f x g)(a, b) = (f(a), g(b)).
The commutative diagram becomes clearer when we label the points:
not x not
(a, b) ---------> (not(a), not(b))
| |
and | | or
V V
and(a,b) ---------> not(and(a, b)) = or(not(a), not(b))
not
(This is the same as what user lmm wrote in prose in https://news.ycombinator.com/item?id=23203478. https://news.ycombinator.com/item?id=23203478.)
As for what "path-space" notation means, even the author appears confused, since they claim that "and[not] <=> or" corresponds to "If you flip the input and output bits of an `and` function, ..." corresponds to "not(and(a, b)) = or(not(a), not(b))", but this clearly isn't the case: flipping both the inputs and outputs of `and` to get `or` would be "not(and(not(a), not(b))) = or(a, b)".
- YeGoblynQueenne 6y agoThanks, annotating the points does make it easier to follow. For some reason I misunderstood the purpose of this to be getting rid of arguments to functions so it didn't occur to me to do what you did (well, in my head).