3 ms·
ML got ADTs and static type guarantees, but Lisp got macros, which allows to implement things like http://andykeep.com/pubs/np-preprint.pdf http://andykeep.com/
by sklogic 11y ago
ML got ADTs and static type guarantees, but Lisp got macros, which allows to implement things like http://andykeep.com/pubs/np-preprint.pdf http://andykeep.com/pubs/np-preprint.pdf - which is significantly less boilerplate than in ML. An ideal language for compilers would have combined both properties, but to make it happen, an expression problem must be solved first.
See a relevant discussion here from not long ago:
https://news.ycombinator.com/item?id=10712566 https://news.ycombinator.com/item?id=10712566
- nickpsecurity 11y agoA commenter elsewhere said Racket had ADT's with langplai but also with langracket via subtypes of struct type with match macro. Said it was same style of programming. So that's static typing (Typed Racket) and macros for sure. Possibly ADT's depending on whether you object to claim above. Should cover your list of requirements.
- sklogic 11y agoThe problem here is that a single variant tag does not uniquely define a type, as all such type systems expect.
- nickpsecurity 11y agoYou think it could be modified to handle that?