3 ms·
i'll ask you the same questions i asked the parenjs author, and which i think are pretty much faqs if you're developing a language-hosted lisp dialect. (some of
by zem 13y ago
i'll ask you the same questions i asked the parenjs author, and which i think are pretty much faqs if you're developing a language-hosted lisp dialect. (some of them, like the
interop ones, are answered in the hy docs, but it would be nice to have a quick up-front list for reference).
* lisp-1 or lisp-2?
* scoping rules?
* 1-way or 2-way python interop?
* lisp support for python objects?
* any support for tco or loop/recur?
* reader macros?
* speed penalty relative to native python?
- anaphor 13y agoI can answer most of these just from reading the stuff linked here and educated guesses. lisp-1, bastardized-lexical (like python, though you could create your own binding constructs with macros), 2-way, yes, yes (loop/recur, no TCO afaict or trampolining), yes, yes
- paultag 13y agotrampolining - confirmed
- anaphor 13y agoThen you should give this a read if you haven't: http://www.cs.indiana.edu/~dfried/ts.ps http://www.cs.indiana.edu/~dfried/ts.ps tl;dr you can actually generalize trampolining quite a bit in order to get co-operative threading.
- paultag 13y agoInteresting, thanks for that! I'll read it over on the train in the morning and see if I can't fudge it in :)
- paultag 13y ago* lisp-1 (Python rules) * Python (sucks) * 2-way * Yep! CLOS syntax * Yep! hy.contrib.loop - to be promoted soon * Yep, they're OK, relies on dispatch char that's static * Very little, actually - it compiles to (pretty sane) Python AST / Bytecode - so good pdb works to debug Hy :)
- zem 13y agoawesome, looking forward to checking it out :) shame about the scoping, as you say, but i guess the python interop made it the natural choice.