5 ms·
I see no inherent value in writing 2x3=6 as: 2 x 3 = MULTIPLY 2 3 :⇔ (λ abc.a(bc)) (λ sz.s(s(z))) (λ xy.x(x(x(y)))) = λ c.(λ sz.s(s(z)))((λ xy.x(x(x(y))))
by Jupe 12y ago
I see no inherent value in writing 2x3=6 as:
2 x 3 = MULTIPLY 2 3 :⇔ (λ abc.a(bc)) (λ sz.s(s(z))) (λ xy.x(x(x(y))))
= λ c.(λ sz.s(s(z)))((λ xy.x(x(x(y))))c)
= λ cz.((λ xy.x(x(x(y))))c)(((λ xy.x(x(x(y))))c)(z))
= λ cz.(λ y.c(c(c(y)))) (c(c(c(z))))
= λ cz.c(c(c(c(c(c(z)))))) = 6
This makes Brainf*ck look elegant!
- Crito 12y ago> I see no inherent value in writing [...] There isn't, in the similar sense that there is no inherent value in spending two hours assembling a bicycle then traveling with it one mile instead of simply taking 20 minutes to walk one mile. Lambda calculus was not created as a better way of multiplying two numbers, just like you do not construct a bicycle to travel one mile. They have grander, or more ambitious, purposes. Multiplying two numbers or travelling one mile in over two hours simply serve as demonstrations of some of the capabilities of what was constructed. Lambda calculus was created to help study computability; to explore mathematics with mathematics.
- neurobro 12y agoWould you suppose there's any value in writing it as: 2 * 3 = (1 + 1) + (1 + 1) + (1 + 1) = 1 + 1 + 1 + 1 + 1 + 1 = 6? Generally it's kind of pointless, but consider: 1 + 1 + 1 + 1 + 1 + 1 = (1 + 1 + 1) + (1 + 1 + 1) = 3 * 2 Interesting (imho), I just swapped the operands without assuming multiplication is commutative.
- sthatipamala 12y agoAlthough you did assume addition is associative (I wonder if there is some duality involved here)
- neurobro 12y agoYeah I'm not sure. Actually, I wouldn't be surprised if I made a hidden commutativity assumption that would surface if I tried to justify treating multiplication as repeated addition like that.
- agumonkey 12y agoLambda calculus is model for abstract computation. Any computation. The fact that it can express and operationally reduce arithmetic is just a proof of usefulness, but it's not supposed to be limited to that.
- sgk284 12y agoLambda calculus is the computational equivalent of compass and straightedge geometrical construction[1]. It's about starting with fundamental and simple components and building higher-level abstractions upon these firm foundations. Euclid's Elements, which heavily relied on this approach and made it famous, was arguably the most influential mathematical text ever written. By combining simple constructs according to simple rules, you can be certain that more complex constructs are themselves correct. This also often highlights simplicity and elegance in the underlying structure of otherwise complex constructs. [1] http://en.wikipedia.org/wiki/Compass-and-straightedge_construction http://en.wikipedia.org/wiki/Compass-and-straightedge_constr...
- sklivvz1971 12y ago... and just as Euclidean geometry, nobody actually uses it, and it is a controversial matter whether it is a good teaching tool [1]. It's elegant, but elitist, because it's unnecessarily difficult and hostile. [1]: http://mathoverflow.net/questions/152352/is-euclid-dead http://mathoverflow.net/questions/152352/is-euclid-dead
- Crito 12y agoOh give me a break. Lambda calculus was created to study computation. To study computation in a rigorous manner, a mathematical model of computation was necessary. The more complex the model of computation, the more axioms you need. Complex models with many axioms are more difficult to reason about but are not actually more powerful (since they are all equivalent...) With a simple model of computation you can quickly build yourself more user-friendly systems (such as demonstrating how Church Encoding works, then proceeding to use it instead of writing it all out every time). It wasn't created out of some sense of elitism, it was created out of pragmatism. Do you really think that Alonzo Church made his own work more difficult just to make others feel excluded? That's ludicrous.
- sklivvz1971 12y ago... just like Euclidean geometry, it was created by a geometer for "internal usage". I am not contesting the usefulness of lambda calculus in academic contexts! I am just saying that lambda calculus is not the best approach in an engineering context, because it's too abstract, just like in practical terms, I see little use of Euclidean geometry in proving new theorems.