M Jared Finder wrote: > Alex Martelli wrote: >> Stefan Nobis <[EMAIL PROTECTED]> wrote: >>> [EMAIL PROTECTED] (Alex Martelli) writes: >>> >>>> if anonymous functions are available, they're used in even more >>>> cases where naming would help >>> >>> Yes, you're right. But don't stop here. What about expressions? Many >>> people write very complex expression, that are hard to understand. A >>> good language should forbid these abuse and don't allow expressions >>> with more than 2 or maybe 3 operators! >> >> That would _complicate_ the language (by adding a rule). I repeat what >> I've already stated repeatedly: a good criterion for deciding which good >> practices a language should enforce and which ones it should just >> facilitate is _language simplicity_. If the enforcement is done by >> adding rules or constructs it's probably not worth it; if the >> "enforcements" is done by NOT adding extra constructs it's a double win >> (keep the language simpler AND push good practices). > > Your reasoning, taken to the extreme, implies that an assembly language, > by virtue of having the fewest constructs, is the best designed language > ever.
Assembly languages don't have the fewest constructs; kernel languages such as Core ML or Kernel-Oz do. In any case, I didn't read Alex's point as being that simplicity was the only criterion on which to make decisions about what practices a language should enforce or facilitate; just "a good criterion". However, IMHO anonymous lambdas do not significantly increase the complexity of the language or of programs, and they can definitely simplify programs in functional languages, or languages that use them for control constructs. -- David Hopwood <[EMAIL PROTECTED]> -- http://mail.python.org/mailman/listinfo/python-list