3 ms·
That's a good point that it doesn't have the direct homoiconicity of Lisp, but it is not buried deep, since we have full access to the underlying AST as just an
by lenticular 8y ago
That's a good point that it doesn't have the direct homoiconicity of Lisp, but it is not buried deep, since we have full access to the underlying AST as just an Expression type. In practice, this makes macros much less painful than in other non-lisp languages. This means that macros are used all the time, and idiomatically. The most proiminent non-lispy language with a macro system that I can think of is Scala. Macros there are a nightmare, and so tend to be only used in library code that really, really needs them.
- kgwgk 8y agoI agree that macros are better than in other non-lisp languages, but I find them ugly in Julia. Maybe not painful, but they don’t integrate seamlessly into the language.
- lenticular 8y agoThey are ugly, I agree. Personally, I prefer lisp (especially Clojure) syntax, but not many people agree with me there.
- Recurecur 8y agoWhat's actually sad (I learned this quite recently) is that the inventor of Lisp wanted to include a mechanism to evaluate formulas along the lines of FORTRAN. Something like: (math "x = sin(a) * b ^ 2") Lack of something like that turned me away from Lisp (LISP at the time) a (cough) long time ago, since I didn't like the impedance mismatch between Lisp code and math for numerics. At any rate, Julia looks like a fine general purpose language, I'm going to see if I can contribute somehow. I'm hopeful that GC pauses can be avoided for large classes of Julia programs, but we'll see...
- kazinator 8y agoThroughout Lisp history, this has been done. (Let's not count things like computer algebra systems written in Lisp that have some sort of actual math notation for input and output, just alternative syntax for programming in Lisp itself.) As early as 1973, there was https://en.wikipedia.org/wiki/CGOL https://en.wikipedia.org/wiki/CGOL That can actually be made to work today: http://abcl-dev.blogspot.com/2010/04/cgol-on-abcl.html http://abcl-dev.blogspot.com/2010/04/cgol-on-abcl.html