Python syntax in Lisp and Scheme

David Mertz mertz at gnosis.cx
Thu Oct 16 05:01:44 EDT 2003


|> But the underlying issue was the spurious claim that lambda forms
|> were somehow required for HOFs, which is totally bogus.  Python
|> could get by with only 'def', Lisp with only 'defun', and Haskell
|> only '=' and 'where'... and all of them would be just as capable at
|> using combinatorial and other HOFs.

Jacek Generowicz <jacek.generowicz at cern.ch> wrote previously:
|Yes, but arguments such as these are the first step down the slippery
|slope to Turing Equivalence. For just about any feature in just about
|any language, you could argue that the langugage could get by without
|it ... and taking this to its logical conclusion, you end up with
|assembler.

There is no such slope.  OF COURSE everything is *computable* in every
language.  That's obvious and trivial.  Well, so are lots of things, but
it's not the point I've made.

What I am talking about is HIGHER ORDER FUNCTIONS.  I.e. things
(abstractions) that don't exist in assembly language or in Turing
machines.  You don't need that abstraction to do any computation, but
obviously, HOFs have a certain utility and beauty.

And you DO NOT NEED lambdas for HOFs!  Categorically so--it's not that
you can use only a subset of HOFs if you only have def/defun/=.  A
language that doesn't have lambda, but treats functions as first class,
can express EVERY HOF that one that adds lambda can.

This point is quite neutral as to whether lambda forms are otherwise
worthwhile.  It's just a basic fact that a bunch of posters oddly want
to deny.

Yours, David...

--
mertz@  | The specter of free information is haunting the `Net!  All the
gnosis  | powers of IP- and crypto-tyranny have entered into an unholy
.cx     | alliance...ideas have nothing to lose but their chains.  Unite
        | against "intellectual property" and anti-privacy regimes!
-------------------------------------------------------------------------






More information about the Python-list mailing list