[plt-scheme] The Lambda Calculus behind functional programming

From: Jos Koot (jos.koot at telefonica.net)
Date: Fri Aug 31 14:01:22 EDT 2007

Would it make sense to present a formal mathematical definition of a real number 
on primary school as a starting point for elementary arithmetics?
I think that for most students LC is too abstract as long as they have not yet 
done some fp.
I would have been such a student, I think.
I try always to be prepared for the question "what is this good for?"
When working with future programmers, an answer might be: "to better understand 
the essentials of computation" but this would not make sense to someone who does 
not yet have any idea of computation at all.
Jos koot

((((lambda(x)((((((x x)x)x)x)x)x))
   (lambda(x)(lambda(y)(x(x y)))))
  (lambda(x)(write x)x))
 'greeting)
----- Original Message ----- 
From: "Corey Sweeney" <corey.sweeney at gmail.com>
To: "Jos Koot" <jos.koot at telefonica.net>
Cc: "Grant Rettke" <grettke at acm.org>; "PLT Scheme" 
<plt-scheme at list.cs.brown.edu>
Sent: Thursday, August 30, 2007 4:39 PM
Subject: Re: [plt-scheme] The Lambda Calculus behind functional programming


> On 8/29/07, Jos Koot <jos.koot at telefonica.net> wrote:
>> For me discovering Lambda Calculus (and combinatory logic) was fabulous in
>> itself. It is beauty.
>> Whether or not it makes you a better programmer. I am inclined to think so, 
>> but
>> I don't have any kind of evidence,
>> Anyway, when my friends ask me what I am doing these days, I have much 
>> trouble
>> making an understandable answer.
>> My conclusion:
>> 1: Lambda calculus is not the starting point of learning programming, I 
>> think.
>
> I personally would tend to disagree with the idea of lambda calucus
> not being a good starting point.  (well, technically typing would be
> the starting point :) .  Why do you think it's not a good starting
> point?  Is it the lack of a good IDE?  (which by the way, i have a
> solution for ;) .   I would agree that paper and pencil is not a good
> way to start.  But for the motivated learner, I think that the lambda
> calculus with a few moddification could be a near optimal environment.
>
> What are other peoples thoughts?
>
> Corey
>
>> 2: At some stage you wonder: what are the essential principles of 
>> programming.
>> 3: At that point lambda Calculus may be an answer.
>> 4: Wait for your students to ask the question before answering it
>> 5: Not all of us can claim to be as clever as Socrates, but asking questions 
>> is
>> a good method to make your students ask the right questions.
>> 6: I know I have failed on this many times
>> Jos Koot
>>
>>
>> ((((lambda(x)((((((x x)x)x)x)x)x))
>>    (lambda(x)(lambda(y)(x(x y)))))
>>   (lambda(x)(write x)x))
>>  'greeting)
>> ----- Original Message -----
>> From: "Grant Rettke" <grettke at acm.org>
>> To: "PLT Scheme" <plt-scheme at list.cs.brown.edu>
>> Sent: Wednesday, August 29, 2007 8:27 PM
>> Subject: [plt-scheme] The Lambda Calculus behind functional programming
>>
>>
>> > When I tell people that I'm learning Scheme the first thing they ask
>> > me is "So have you learned lambda calculus?". I've learned enough to
>> > say the words "lambda calculus" and that everyone says that lambda
>> > calculus is the theoretical backbone of functional programming; but
>> > that is it.
>> >
>> > The following question is a simple one, it makes no attempt to
>> > generalize whether anything is worth learning, I think you get the
>> > idea.
>> >
>> > So to revisit this again, what do you need to learn of the lambda
>> > calculus relative to FP?
>> >
>> > What would you tell folks about who have never looked at FP when they
>> > ask you about lambda calculus?
>> > _________________________________________________
>> >  For list-related administrative tasks:
>> >  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>> >
>>
>> _________________________________________________
>>   For list-related administrative tasks:
>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>
>
> -- 
> ((lambda (y) (y y)) (lambda (y) (y y)))
> 



Posted on the users mailing list.