Hi. After survey of various lisp dialects compiled to javascript, I was happy to find out lispyscript.
It works well and has good amount of documents. I hope it will be more mature and there will be more users of it.
Although it looks cool, I have some questions about it.
First, without gensym or hygienic macros, does your approach guarantee for avoiding of variable capture?(Using three underscore for variables in macros and forbidding three underscores in code outside macros)
If I use the same macro as nested forms like this:
(mymacro some_code
(mymacro some_code))
Can variable captures be avoided in that case?
Second, as you know, 'template and placeholder' approach for macros has its limitations.
Only when your macros can return code as a data(usually a list), it is possible to write really powerful macros because you can generate arbitrary code from data manipulation.
If you read 'On Lisp', you already knew about it. 'Homoiconicity' is no more useful when your macro can't return your code as a data because you can't manipulate your code as a data.
I'm just curious why you decide to make lispyscript's macros not to manipulate its code arbitrarily.
Best regards
Chanwoo