On 04/11/2016 10:25 AM, Matthias Felleisen wrote: > Second credit to Matthew (and Shriram and Robby) who kept me > on the 'macros are good for designing complete languages' track, > too. This one is important for different reasons. Often you want > to create a reasonably complete language but not invent everything > from scratch. In our words, you want 'linguistic inheritance'. For > example, you like Haskell's type system but you hate, loathe, despise > the stupid idea of universally lazy evaluation. Well, if you were > in Racket, you'd define a 10-line language that looks, feels, smells, > tastes like the host but has a by-value evaluation mechanism. Of course, > Racket is by-value, so you may convert it into a lazy language without > giving up the lovely parentheses and the beautiful Lisp syntax. Well, > it's a 10-line language definition, based on Racket's generalization > of old, very old, stone-age old Lisp macro system. > > See the last chapter of Realm of Racket on how to teach Kindergarden > kids to define this kind of by-need (actually by-name) Racket.
I love how Scheme and Racket continue to push the boundary on what can be done with syntax extension, but these paragraphs are hyperbole. There is a long way to go before working programmers can make linguistic inheritance happen. At least a book needs to be written, maybe more research. Please view Asumu's google hangout on typed racket + the class system for evidence about just how sticky things are in the real world. Don't get me wrong, PLT has done, and is doing the work, and that work is under appreciated by the programming languages community, but still... really? Let's not over-sell and under-deliver. -- Anthony Carrico -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.