POV-Ray : Newsgroups : povray.off-topic : Wikipath : Re: Wikipath Server Time
1 Oct 2024 03:17:28 EDT (-0400)
  Re: Wikipath  
From: Invisible
Date: 15 Aug 2008 08:44:44
Message: <48a57a3c$1@news.povray.org>
>> 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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.