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- <http://www.tombstonezero.net/dan/> wise north of the equator. Atoms are not things. -- Werner Heisenberg -- Dilbert's PHB -- http://mail.python.org/mailman/listinfo/python-list