4 ms·
Are you looking for general references on implementing type checkers and ML-like languages? Or how to implement those as languages in Racket specifically?
by samth 11y ago
Are you looking for general references on implementing type checkers and ML-like languages? Or how to implement those as languages in Racket specifically?
- jnbiche 11y agoEither or any would be great, particularly if they're online and not books (although I'd buy a good book that covered those topics in depth). Particularly an approachable intro to Hindley-Milner and building a toy/mini-ML, and type checking in general. All the better if it's in Racket, or some ML. Actually, do you know of any examples of ML-type languages, or any statically-typed languages, that are written in Racket, aside from Typed Racket itself? Is looking at the Typed Racket code instructive? (I should just take a look)
- heimp 11y agoIt looks like Pyret was first written in Racket. I think it's optionally typed, though. https://github.com/brownplt/pyret-lang-resugarer https://github.com/brownplt/pyret-lang-resugarer
- deleted 11y ago[deleted]
- mkolosick 11y agoAs the sibling comment mentions, Pyret was originally written in Racket. It's now self-hosted, and I'm working on rewriting the typechecker so if you want I can answer questions about that. The current development is all done on https://github.com/brownplt/pyret-lang https://github.com/brownplt/pyret-lang
- sklogic 11y agoNot in Racket, but still a Lisp: https://github.com/combinatorylogic/mbase/tree/master/src/l/lib/ml https://github.com/combinatorylogic/mbase/tree/master/src/l/...
- jnbiche 11y agoThat is quite a broad and instructive project, very interested to see the Prolog type checking you describe below in action. Thanks!
- samth 11y agoThere is a simple ML-like language implemented in Racket, called plai-typed, which is used by some people for teaching the PLAI programming language book. You can see the implementation here: https://github.com/mflatt/plai-typed https://github.com/mflatt/plai-typed