Instead of deciding between Python or Lisp for a programming intro course...What about an intro course that uses *BOTH*? Good idea?

Ian Kelly ian.g.kelly at gmail.com
Wed May 13 11:26:23 EDT 2015


I don't know why I'm replying to this...

On Wed, May 13, 2015 at 8:44 AM, zipher <dreamingforward at gmail.com> wrote:
> On Tuesday, May 12, 2015 at 10:35:29 PM UTC-5, Rustom Mody wrote:
>> How history U-turns!!
>> Lisp actually got every major/fundamental thing wrong
>> - variables scopes were dynamic by mistake
>> - lambdas were non-first class because the locution 'first-class' was still 8
>> years in the future
>
> I think you're confused.  LISP doesn't have variables.

Yes, it does.

> It's a lambda calculus

No, it isn't. Lambda calculus is a formal system of mathematics. LISP
is a programming language. It may draw inspiration and borrow notation
from lambda calculus, but these are different things with different
uses and purposes.

> with an entirely different model computation than other programming languages which use variables all the time.  To the extent that it DOES have variables, it's to accomidate those coming over from iterative programming.

What is "iterative programming"? If you mean "writing programs that
work iteratively", then this describes both functional and procedural
styles alike.

The opposite of "iterative programming" would then be a style where
the program can't ever repeat anything. That would be a very limited
language and would *not* be equivalent to a Turing machine.

> And the idea of lambdas were already encoded by the use of special expressions, set-off by parenthesis.  So they practically *defined* the concept of lambdas.

LISP is also the reason why we're cursed with the terrible name
"lambda" for anonymous functions rather than something more mnemonic
(like "function").



More information about the Python-list mailing list