On Wednesday, May 13, 2015 at 8:14:39 PM UTC+5:30, zipher wrote: > On Tuesday, May 12, 2015 at 10:35:29 PM UTC-5, Rustom Mody wrote: > > On Wednesday, May 13, 2015 at 8:00:50 AM UTC+5:30, Steven D'Aprano wrote: > > > Why can't a language be designed with a *practical and concrete* need in > > > mind? As far as I know, only one language designed from theoretical first > > > principles has had any measure of mainstream success, Lisp, and that was > > > probably because there weren't that many decent alternatives at the time. > > > > 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. It's a lambda > calculus 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. > > 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.
See https://groups.google.com/forum/#!msg/haskell-cafe/gDwF__-HMXE/oCKCbco2bS8J | I asked McCarthy was the use of the LAMBDA notation in Lisp because the | language was functional, or was it just a convenient notation for anonymous | functions? His answer was short and very definitive: he said it was a | convenient notation --- *he didn't consider Lisp to be a functional language.* -- https://mail.python.org/mailman/listinfo/python-list