5 ms·
The selling point of lisp is macros, and macros alone. Different dialects will have different characteristics: Common Lisp is dynamically typed and usually make
by steinuil 9y ago
The selling point of lisp is macros, and macros alone. Different dialects will have different characteristics: Common Lisp is dynamically typed and usually makes heavy use of mutation, others like Lux are purely functional and statically typed.
> wouldn't it just be Rust with parenthesis?
That's pretty much what it is.
- metaobject 9y ago> The selling point of lisp is macros, and macros alone. That's a fairly bold claim.
- jstewartmobile 9y agoYes, but will macros retain their power in a statically typed environment?
- bjoli 9y agoThey work OK in typed racket, but you will have to help the type checker a bit for the more complex macros. And they provide utility that the type system doesn't. The for style loops are extremely useful
- NiceGuy_Ty 9y agoThe only requirement to make macros work in a statically typed environment is to create a suitable type to represent the source code, and provide the operations to transform the said type. For instance, Rust has a macro system that's pretty nice to work with. https://danielkeep.github.io/tlborm/book/README.html https://danielkeep.github.io/tlborm/book/README.html
- masukomi 9y agoThey work pretty well in Crystal[1]. Some things are certainly a bit harder than they are in lisp/scheme but you can get a lot done with them. In crystal this is (in my experience) due to the lack of reflection support, and thus the ability to call dynamical looked up methods. Add that in and i'm pretty sure you'd remove >=90% of the current limitations, but even without that, you can get a lot done. [1]: https://crystal-lang.org/ https://crystal-lang.org/