Anyone else enjoy programming in untyped lambda calculus?
>>57035341
What is this gobbledygook.
>>57035356
The best programming language ever created, the untyped lambda calculus. Lisp is basically untyped lambda calculus + a few extras. Haskell is basically the typed lambda calculus broken to allow recursion.
It is totally Turing complete despite only supporting the creation of anonymous functions and their application.
Is there any Scheme environment which basically allows me to disable every feature except define and lambda? So I can basically write pure lambda calculus with S-expressions and not have anything else available.
No but I use APL, Idris, and Coq
Sorry but I program like any normal Pajeet would. In object-oriented languages.
Does that space mean another composition or something?
>>57035430
Why don't you just write the interpreter yourself?
>>57035384
>lambda calculus broken to allow recursion
So just lambda calculus?
So Y equals lambda f composed with the composition of lambda x on f applied to two x's (whatever x is, perhaps it's x applied on x? Or just variables most likely) applied on the composition of x on f applied to two x's?
>>57035813
Why did you drop the typed from typed lambda calculus?
Though I wouldn't call adding recursive bindings and/or an explicit fixpoint operator "breaking" it.
>>57035864
The fuck are you talking about? f x is application in LC syntax.
Here is Y in Javascript syntax:Y = f => (x => f(x(x))) (x => f (x(x)))
>>57036675
So the dot isn't composition?
>>57036809
Read a lambda calc tutorial. It's not very complicated.
λ x . e
This is an abstraction with parameter x and body e. In Javascript syntax
x => e
or
function (x) { return e; }
>>57036887
With(x => f (x(x)))
Abstracted away to, say, x:Y = f => x x
A function which returns two things? This is the part which confuses me.
>>57035384
>Haskell is basically the typed lambda calculus broken to allow recursion.
Not really. It's a non-broken typed lambda calculus that allows recursion. There are typed lambda calculi that allow recursion without breakage, and haskell uses one of them.
>>57037009
x x
in lambda calculus syntax is application. I've already told you this. It's entirely equivalent to
x(x)
in typical c-like syntax. x is a function, and it's being passed to itself as a parameter.
The Y combinator takes an open-recursive function and uses this trick to close the loop without needing recursion as a primitive in LC.
>>57037132
Ah, then I was right all along. Nvm then.