|
|
>> Similarly, the Lambda calculus is sort of the simplest possible
>> programming language. And again, it turns out the simpler the language
>> is, the harder it is to program anything with it!
>
> Last night after work, I took another look at the lambda calculus article. I
> think I get the gist of it. It is simple enough to be practically impossible
> to write any useful program with it.
Affirmative. Even "2+2" is quite large in the Lambda calculus!
>> Now if you REALLY WANT TO MAKE YOUR HEAD FRIGGIN HURT... Try the SKI
>> combinator calculus.
>
> I didn't even try to look this on up.
>
>> IF YOU WANT TO TOTALLY BREAK YOUR MIND, you may try the Iota calculus.
>
> Or this one.
I really can't say I blame you. ;-)
> The lambda calculus was somewhat interesting, but outside of some mathematicians
> and computer scientists, I don't know how anyone could ever use it.
Indeed yes. Nobody actually uses the lambda calculus itself. That would
be insane. It's a theoretical rather than practical language. It's
interesting because of what it tells us about the theory of computers
and computation - and that is all.
However... Theoretically, you could claim that Haskell is the lambda
calculus, with some new features added that make it easier to read and
write, and more efficient to execute on a computer.
You'll also find that many (most?) compilers for functional languages
take the code you wrote and translate it into some
extended-lambda-language of some kind, perform a few dozen optimisation
passes, and then finally translate that to some sort of graph reduction
engine. (At least, for lazy languages it's usually graph reduction - for
strict language it'll probably be something more imperative.)
Even here, the lambda calculus is interesting: Without getting into long
debates about complicated features like type checking or dynamic binding
or scope rules, the lambda calculus lets us talk about possible
execution orders - strict vs lazy and so on - and investigate their
consequences. Investigating such design choices in a hyper-simple
langauge makes everything much easier.
So the lambda calculus is where we explore the theories that our real
tools are built on.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|