Lisp mentality vs. Python mentality

Dan Sommers somm1105 at
Tue Apr 28 12:03:01 CEST 2009

On Tue, 28 Apr 2009 02:00:22 -0300, namekuseijin wrote:

> Dan Sommers wrote:
>> On Mon, 27 Apr 2009 07:57:00 +0300, Ciprian Dorin, Craciun wrote:
>>>     I agree with your opinion about keeping the abstraction layers
>>> shallow, but in my view high-order and helper functions do not
>>> comprise a new abstraction layer. For example in Lisp, using map,
>>> reduce (fold), or any other high-order function is just like using
>>> for, or while in a normal imperative language.
>> If I hit a call to map or to reduce, I've hit the bottom:  map and
>> reduce are defined by Lisp and not by the programmer.
> You truly don't know Lisp.  *Everything* in Lisp can be _redefined_ and
> if you can't do something conveniently that way, you can use a _macro_
> to implement convenient new syntax for it.

Yes, I agree:  Python and Lisp are extremely dynamic languages.  I *can* 
redefine map, reduce, +, and other operators and functions, but I know 
better.  When is the last time you examined someone else's code, and 
asked them what their "map" function did (in Lisp or in Python)?

Dan Sommers                                   A death spiral goes clock-
<>           wise north of the equator.
Atoms are not things. -- Werner Heisenberg              -- Dilbert's PHB

More information about the Python-list mailing list