Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

It's not Common Lisp, or Scheme, but it's a "Lisp" in the sense that it is a dynamic language with properties in the spirit of the original LISPs, with the notable exception of not writing directly in the abstract syntax tree.

I wouldn't actually call it a Lisp on its own. It is a derivative, a less directly powerful form. "It's a Lisp where..." in the same way that a unicycle is "a bicycle where..." or something.



> I wouldn't actually call it a Lisp on its own. It is a derivative, a less directly powerful form.

But you could argue every language is a derivative of another, or another's functionality, or style, or...

To fairly call a language "a type of X" there honestly has to be a lot more in common with it.

> "It's a Lisp where..." in the same way that a unicycle is "a bicycle where..."

... it has wheels??!!

I'm sorry, it's not Lisp. It has several of Lisp's useful features, but it's likewise missing a large number of them; to the point that it's a real disservice to glibly compare it and conveniently ignores a lot of the power of Scheme, Common Lisp, and their true ancestors/siblings.


I didn't say "it's Lisp." I said it is a Lisp where and then qualified it heavily. To say I was stating anything else is to put words in my mouth.

If you intentionally misread the very simple analogy that was made in order to give yourself the opportunity to make an inflammatory reply, then there is not much else I can say to sway you.

However, the comparison was not glib. I'm not conveniently ignoring anything. Perl was compared to Lisp when it first appeared, but it is not anymore. People compare JavaScript (mistakenly) to Scheme all of the time, and it is not really Scheme at all. Nor is Python actually Scheme or Lisp. It is an imitation of some of the features of Lisp, but specialized to some other purpose.

If you were replying in hubris with the intent of quashing the unqualified newbie who doesn't know anything about Lisp, allow me to offer some details.

Things Python lacks compared to Scheme: Continuations, tail call optimization, optional typing annotations (like in Bigloo etc.), direct AST construction, explicit metaprogramming, hygienic macros, formal specification (indeed, Python is not a language that can be parsed), lambdas with seq (Python lambdas are expressions only), a dynamic-wind solution for generators, and more.

Things Python has in common with Scheme: readily accessible FFI, rebindable syntax (as well as during runtime), garbage collection, eval, implicit metaprogramming, yielding, standard library with lists + associative maps + bytestring manipulation, extreme late binding as desired, symbol manipulation, lexical (and dynamic) scoping.

Or would you prefer to keep flailing around in anger?


Perl was compared to Lisp when it first appeared, but it is not anymore.

Certainly it is; see the book Higher Order Perl, for example. If you've read SICP, HOP will seem familiar.


Lisp is defined by the fact that the fundamental data structure is the list, and that all of the code itself are also those lists.


If one writes Python using strictly list comprehension, then i guess python could-be-kind-of called lisp.


Putting on a wolf costume does not make me a wolf.


Python is a Lisp (with the notable exception of not writing directly in the AST) in the sense that my aunt is my uncle (with the notable exception of not having balls). (Reference: http://en.wiktionary.org/wiki/if_my_aunt_had_balls,_shed_be_...)


I think there are dozens of languages that would be considered lispy before python would.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: