hackett
hackett copied to clipboard
WIP implementation of a Haskell-like Lisp in Racket
Since this is 21'th century, we probably can have many (most?) parentheses implied, in a way that is not dissimilar to how Haskell does implicit `{ ... }` blocks (which...
The guide and reference describe Hackett's features in isolation at a REPL, but there aren't any examples of a full Hackett *module* in the docs. The example code in the...
Maybe I've reinvented the wheel, but as an exercise here is an implemention of the State monad (`state.rkt`) with the relevant `get`, `put` and `modify` operations. Also, based on that,...
Currently, Hackett provides a `Tuple` type defined as an ordinary ADT, which is a 2-tuple. It would be nice to transparently support arbitrarily large tuples, like Haskell does.
Hello, Thanks for sharing Hackett. It seems to bring out the best of haskell and scheme. Just want to check if there is any way to turn off lazy evaluation....
I'd like to hear all possible feedback on this implementation before I add anything. I understand where @aaronmcdaid is coming from; it feels very awkward to convert to/from `pseudo-random-number-generator`s, but...
Right now, doing IO in the Hackett repl is kind of gross; your only option afaik is to wrap your `IO ()`s in an `unsafe-run-io!` call. Having e.g. `#:run` and...
It would be useful to have a `#:minimal` clause as part of the `class` form, analogous to GHC’s `MINIMAL` pragma.
Like Typed Racket, Hackett should support safe interop with Racket, with boundaries protected with contracts. The interoperation story is more complicated with Hackett because it’s semantically more distant from Racket...
This repository should include a CONTRIBUTING file that outlines the general contribution process as well as references the code of conduct.