From: laotseu
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <3EA08A7D.3010206@removethis.free.fr>
Bjorn Pettersen wrote:
>>From: laotseu [·············@removethis.free.fr] 
>>
>>Paul Foley wrote:
>>
>>>On Tue, 15 Apr 2003 23:49:37 +0000, laotseu  wrote:
>>>
>>>
>>>
>>>>Even for OO programmers, functionnal features in Python are IMHO a
>>>>great plus, and BTW functionnal and OO paradigm does not have to
>>>>conflict (that would be functionnal vs imperative and object vs
>>>>procedural). CLOS is one of the great system objects out here, and
>>>>it's been implemented on top of a functionnal language,
>>>
>>>Oh yes?  Which functional language would that be?
>>>
>>
>>CLOS means Common Lisp Object System.
> 
> 
> "Houston: we have a claim that CL is a functional language, please
> proceed with crosspost to c.l.sml, c.l.haskell, ..." <grin>.
> 

Ok folks

Due to my deep ignorance, I came to believe that Lisp was the first 
programming language based on the lambda calculus theory, the first 
language to promote functions as first class objects, and the first 
language to promote side-effect free programming style...

It seems that good old time is gone, and that even lispers themselves - 
BTW, is Paul Graham still a Lisper ? -  claims that Lisp is not a 
functional language. So I just can agree with them and <troll>proudly 
announce that Lisp is now a procedural, pascal-style language</troll>. 
oops, sorry, that was not that either. Er, a general multi-paradigm 
language.

So :

for x in range(100):
   print "I shall not say that Lisp is a functional language anymore"


Laotseu

From: Henrik Motakef
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <877k9rh43t.fsf@interim.henrik-motakef.de>
laotseu <······@removethis.free.fr> writes:

> Due to my deep ignorance, I came to believe that Lisp was the first
> programming language based on the lambda calculus theory, the first
> language to promote functions as first class objects, and the first
> language to promote side-effect free programming style...

On the other hand, Common Lisp claims to be the first language with a
standardized (as in "ANSI standard") object system :)

> BTW, is Paul Graham still a Lisper?

Yes he is. He is currently designing a new dialect of Lisp called
Arc, see http://www.paulgraham.com.

> for x in range(100):
>    print "I shall not say that Lisp is a functional language anymore"

(prog ()
  10 (print "I will not make my programming language do my homework.")
  20 (go 10))

;-)

Regards
Henrik
From: laotseu
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <3EA094CE.2050803@removethis.free.fr>
Henrik Motakef wrote:
> laotseu <······@removethis.free.fr> writes:
> 
> 
>>Due to my deep ignorance, I came to believe that Lisp was the first
>>programming language based on the lambda calculus theory, the first
>>language to promote functions as first class objects, and the first
>>language to promote side-effect free programming style...
> 
> 
> On the other hand, Common Lisp claims to be the first language with a
> standardized (as in "ANSI standard") object system :)

Yes, there is a competition with ADA on this point (I think CL is the 
first ANSI, and ADA the first ISO, but I'm not that sure... Kind of 
"mine's bigger than your's" competition).

> 
>>BTW, is Paul Graham still a Lisper?
> 
> 
> Yes he is. He is currently designing a new dialect of Lisp called
> Arc, see http://www.paulgraham.com.

I meant : is Paul Graham still considered a lisper ? Because he claims, 
in it's 'On Lisp' book (chapter 3), that Common Lisp is a functional 
language !-)


> 
>>for x in range(100):
>>   print "I shall not say that Lisp is a functional language anymore"
> 
> 
> (prog ()
>   10 (print "I will not make my programming language do my homework.")
>   20 (go 10))

You dit it, you cheater !-)

BTW, of what use would be a programming language if I could not make it 
do my homework ?-)

Laotseu
From: Christopher Browne
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <b7q5ac$3eepi$3@ID-125932.news.dfncis.de>
After a long battle with technology,laotseu <······@removethis.free.fr>, an earthling, wrote:
> Henrik Motakef wrote:
>> laotseu <······@removethis.free.fr> writes:
>>
>>>Due to my deep ignorance, I came to believe that Lisp was the first
>>>programming language based on the lambda calculus theory, the first
>>>language to promote functions as first class objects, and the first
>>>language to promote side-effect free programming style...
>> On the other hand, Common Lisp claims to be the first language with a
>> standardized (as in "ANSI standard") object system :)
>
> Yes, there is a competition with ADA on this point (I think CL is the
> first ANSI, and ADA the first ISO, but I'm not that sure... Kind of
> "mine's bigger than your's" competition).

Something like that...

>>>BTW, is Paul Graham still a Lisper?
>> Yes he is. He is currently designing a new dialect of Lisp called
>> Arc, see http://www.paulgraham.com.
>
> I meant : is Paul Graham still considered a lisper ? Because he
> claims, in it's 'On Lisp' book (chapter 3), that Common Lisp is a
> functional language !-)

Of course, that's not what he actually _says_, in Chapter 3.

In Chapter 3 he discusses the ability to do functional programming, in
Lisp, commends it as a generally good idea, and says that "... Lisp
has evolved to support it."

But the material in the chapter expressly contradicts the notion that
Lisp "is a functional language," as it also presents examples that are
expressly *not* functional.

Something he /didn't/ mention about FP that I'd point to as a merit is
that it represents an approach that tries to minimize the amount of
"environment" that functions need to manipulate.

- At the "ugly" end of the environmental spectrum is Perl; take a
  browse at the "man perlvar" manual page for the list of
  environmental components that quite visibly change its behaviour.

- Python has a much smaller set of "environment;" programs are often
  less terse, since the programmer must explicitly name things that
  would be accessed implicitly, in Perl, but there are fewer
  mysteries, as a result.

- In Scheme, there have been some "wars" over the notion of having the
  ability to manipulate the local environment, where MIT Scheme has
  functions for this, but others consider it heresy to do so.

Common Lisp falls in between the extremes; there are quite a few
"environment variables" available to manipulate, however it is not
usual to manipulate them to make code "gibberishy" as is quite common
in Perl.  
-- 
(concatenate 'string "aa454" ·@freenet.carleton.ca")
http://cbbrowne.com/info/lisp.html
The IETF motto: "Rough consensus *and* working code."
From: Thaddeus L Olczyk
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <jtd1avo1brtptqk8c5etf9niq5k66dc1up@4ax.com>
On 19 Apr 2003 00:30:05 GMT, Christopher Browne <········@acm.org>
wrote:

>Something he /didn't/ mention about FP that I'd point to as a merit is
>that it represents an approach that tries to minimize the amount of
>"environment" that functions need to manipulate.
>
>- At the "ugly" end of the environmental spectrum is Perl; take a
>  browse at the "man perlvar" manual page for the list of
>  environmental components that quite visibly change its behaviour.
>
>- Python has a much smaller set of "environment;" programs are often
>  less terse, since the programmer must explicitly name things that
>  would be accessed implicitly, in Perl, but there are fewer
>  mysteries, as a result.
>
This leads to some thought about AOP.
One example of AOP would be to turn thread locking on
and off  for different versions ( multithreaded, singlethreaded )
of the same application by changing an aspect ( in effect
getting the aspect from either one file or another, one change
in one file ).

So where does that put AOP with respect to functional programming?


--------------------------------------------------
Thaddeus L. Olczyk, PhD
Think twice, code once.
From: Christopher Browne
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <b7qmf7$3afd9$1@ID-125932.news.dfncis.de>
Thaddeus L Olczyk <······@interaccess.com> wrote:
> So where does that put AOP with respect to functional programming?

They strike me as being inherently orthogonal matters.

The main point of functional programming is to try to avoid having
"state" hanging around that you fiddle with, whereas AOP has, as its
point, the notion of "fiddling with state" in a coherent manner.

It seems to fit nicely with the way Common Lisp is "multiparadigmic,"
supporting various styles of programming.  

There are times when it makes sense to write code in a functional
style, and it is nice for as much of your code to be "side-effectless"
as possible.  And when handling transactions or "vulnerable things
requiring locking," a CLOS protocol can help manage that more cleanly.
-- 
output = reverse(··········@" "enworbbc")
http://cbbrowne.com/info/advocacy.html
If all those  psychics know the winning lottery  numbers, why are they
all still working?
From: Henrik Motakef
Subject: Re: Why functional Python matters - A kind of conclusion
Date: 
Message-ID: <874r4vh0pk.fsf@interim.henrik-motakef.de>
laotseu <······@removethis.free.fr> writes:

>>>Due to my deep ignorance, I came to believe that Lisp was the first
>>>programming language based on the lambda calculus theory, the first
>>>language to promote functions as first class objects, and the first
>>>language to promote side-effect free programming style...
>> On the other hand, Common Lisp claims to be the first language with a
>> standardized (as in "ANSI standard") object system :)
> Yes, there is a competition with ADA on this point (I think CL is the
> first ANSI, and ADA the first ISO, but I'm not that sure... Kind of
> "mine's bigger than your's" competition).

Only history will tell which of them will rule the world Real Soon
Now...

>>>BTW, is Paul Graham still a Lisper?
>> Yes he is. He is currently designing a new dialect of Lisp called
>> Arc, see http://www.paulgraham.com.
> I meant : is Paul Graham still considered a lisper ? Because he
> claims, in it's 'On Lisp' book (chapter 3), that Common Lisp is a
> functional language !-)

Ah, but while he certaily is a Lisper, he's also known to be a heretic
for quite some time now. He even claimed not to consider Common Lisp the
best language possible in public, can you imagine?!?

Lisp is one of very few programming languages to have dialects, so why
shouldn't it have sects as well?

>>>for x in range(100):
>>>   print "I shall not say that Lisp is a functional language anymore"
>> (prog ()
>>   10 (print "I will not make my programming language do my homework.")
>>   20 (go 10))
> You dit it, you cheater !-)

And clearly in a purely functional way! ;-)

Regards
Henrik