Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Just to be nitpicky, Racket is not a Scheme dialect (hence the name changing from PLT Scheme to Racket a few years ago (already!)). It's not because it not only adds a lot to Scheme but also has somewhat important differences. For instance, `cons` pairs are immutable in Racket: there's no `set-car!` or `set-cdr!` as in Scheme (you can have mutable cons pair using `mcons`, `set-mcar!`, and `set-mcdr!` though). Also the macro systems that Racket uses (`syntax-parse` and co) is quite more advanced than the current Scheme rNrs one.


Well, #lang racket is not scheme, but one can run rnrs in the racket runtime. There are many languages that run on the racket runtime.


IIRC, Arc/HN runs on mzscheme because they rely on mutable cons cells that newer versions (racket) don't provide. Could they run under new rackets by just telling racket to use a proper scheme?


As a Racket author, I can tell you that we provided them with a hack to enable mutation on arbitrary conses, so they can upgrade whenever they wish, and I don't know whether they have or not.


There is an mzscheme language mode, but it specifically does not include set-car! and set-cdr!.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: