在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):lexi-lambda/hackett开源软件地址(OpenSource Url):https://github.com/lexi-lambda/hackett开源编程语言(OpenSource Language):Racket 99.6%开源软件介绍(OpenSource Introduction):HackettHackett is an attempt to implement a Haskell-like language with support for Racket’s macro system, built using the techniques described in the paper Type Systems as Macros. It is currently extremely work-in-progress. Here are some of the features that Hackett supports right now:
Here are some of the features that still need to be implemented for a minimal release:
And finally, here is a (non-exhaustive) collection of features I would like to eventually support:
Due to the way Hackett is implemented, many things that are language features in Haskell can be derived concepts in Hackett. In fact, Hackett’s ADTs are not primitives, they are actually implemented as a library via the Here’s some sample Hackett code that demonstrates some of Hackett’s features: #lang hackett
(data (Maybe a)
Nothing
(Just a))
(def x : Integer
(let ([y 3]
[z 7])
{y + z}))
(class (Show a)
[show : {a -> String}])
(instance (forall [a] (Show a) => (Show (Maybe a)))
[show (λ* [[(Just x)] {"(Just " ++ (show x) ++ ")"}]
[[Nothing ] "Nothing"])]) For a much more in-depth look at Hackett, see the documentation. Trying HackettTo reiterate: Hackett is extremely experimental right now. Things are not guaranteed to work correctly (or work at all), and things are likely to change dramatically. If you really want to install Hackett to play around with it, though, you can. You will need to have Racket installed to use Hackett. Using
Now you can use Hackett by writing |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论