A critic of Guido's blog on Python's lambda

Alex Martelli aleax at mac.com
Wed May 10 05:12:28 CEST 2006


Joe Marshall <eval.apply at gmail.com> wrote:
   ...
> The problem is that a `name' is a mapping from a symbolic identifier to
> an object and that this mapping must either be global (with the
> attendant name collision issues) or within a context (with the
> attendant question of `in which context').

Why is that a problem?  Even for so-called "global" names, Python
supports a structured, hierarchical namespace, so there can never be any
collision betwen the "globals" of distinct modules (including modules
which happen to have the same name but live in distinct packages or
subpackages) -- I did mention that names could usefully be displayed in
some strcutured form such as apackage.somemodule.thefunction but perhaps
I was too tangential about it;-).


> Matthias Felleisen once suggested that *every* internal function should
> be named.  I just said `continuations'.  He immediately amended his
> statement with `except those'.

If I used continuations (I assume you mean in the call/cc sense rather
than some in which I'm not familiar?) I might feel the same way, or not,
but I don't (alas), so I can't really argue the point either way for
lack of real-world experience.

But if we can agree to name every function except continuations I'll be
content: Python doesn't support continuations, so it's consistent for it
to require every function to be named (since in its case "every
function" and "every function except continuations" coincide;-).


Alex



More information about the Python-list mailing list