3 ms·
A printing mistake was also responsible for the lambda in Lambda Calculus.
by pmoriarty 6y ago
A printing mistake was also responsible for the lambda in Lambda Calculus.
- dane-pgp 6y agoAnother printing mistake gave English the word "dord"[0] (at least temporarily, and from a prescriptivist point of view). While this "word" didn't influence Unicode, it is somewhat analogous to the situation in Japan where there are symbols that are arguably in the language but which are never meaningfully used. I assume that the situation is even stranger in Japanese because these mistakenly created symbols do not have either an associated definition (even a mistaken one) or a pronunciation. [0] https://www.youtube.com/watch?v=nb0YoRMXIY0 https://www.youtube.com/watch?v=nb0YoRMXIY0
- kmill 6y agoI thought it was more of an accident? The story I know goes that Church used hats over variables, and then he switched over to lambda prefixes for ease of printing.
- crdrost 6y agoI have often thought that if I were to teach a class on functional programming, I would use JavaScript’s fat arrow notation to introduce lambda calculus. Less succinct with all the extra parentheses that occur in function calls but I think it’s easy enough to explain.
- kmill 6y agoPretty much the same idea, but in math contexts I tend to use the \mapsto arrow (↦), since mathematicians are more familiar with this than lambda calculus. (The fat arrow seems like an interesting alternative in programming contexts, but I worry that it might be confused with implication.) The function that swaps the arguments to a two-argument function: f ↦ ((x, y) ↦ f(y, x))
- MayeulC 6y agoInteresting. The mathematical notation I learned in school was: f:x↦2x+3, So I guess this would translate to f:(x,y)↦(y,x). Alternatively, the f(x,y) = (y,x) notation would work (sort of, you tend to explicitly write out the base vector 𝑒ₖ for both notations: f(x,y) = f(x𝑒₁+y𝑒₂) = y𝑒₁+x𝑒₂ ) https://en.wikipedia.org/wiki/Function_(mathematics)#Arrow_notation https://en.wikipedia.org/wiki/Function_(mathematics)#Arrow_n...
- kmill 6y agoThat's close but not quite how I meant for the notation to be interpreted: f is an argument to an anonymous function. Maybe clearer is swap = f ↦ ((x, y) ↦ f(y, x)) The rule this satisfies is swap(f)(x, y) = f(y, x) and the type for swap is swap : (X × Y → Z) → (Y × X → Z) for some types/sets X, Y, and Z. (Also, note that tuples might not be anything like a vector space. For example, for String × [Int], you wouldn't usually write ("hi", [2,3]) as "hi"𝑒₁ + [2,3]𝑒₂ since there's not really a good commutative addition operation for strings or lists.)
- clankyclanker 6y agoPossibly not, according to [0], which links to [1], presented by a student of Church. 0: https://math.stackexchange.com/questions/64468/why-is-lambda-calculus-named-after-that-specific-greek-letter-why-not-rho-calc#comment4307833_64472 https://math.stackexchange.com/questions/64468/why-is-lambda... 1: https://www.youtube.com/watch?v=juXwu0Nqc3I https://www.youtube.com/watch?v=juXwu0Nqc3I