The hexpr package

[Tags: bsd3, library]

H-expressions are a variant of S-expressions. Where s-expressions are atoms or nodes grouped into lists of length at least one, h-expressions, or hexprs, are grouped into lists of length two. This may seem very trivial, but this restriction makes it possible to treat parenthesis in the concrete syntax of hexprs merely as a manual override to the basic precedence rules, just as in mathematics. In particular, a suitable hexpr interpreter is capable of understanding eta-converted terms, which is quite unrealistic, if not impossible in an sexpr-based syntax. Thankfully, hexprs retain all the advantages of sexprs with respect to homoiconic syntax. Hexprs on their own are fairly unhelpful, so we also have also included a configurable hexpr parser based on parsec. I wasn't long before mission creep set in, and a series of tools were produced to aid in creating a frontend for hexpr-based languages. See the package hexpr-examples for some examples of the framework in action. I think H could stand for many things: the greek letter eta, hierarchical, happy, next in the alphabet after f, or perhaps hexpr == hexpr-expression. Where it comes from is unimportant, what is important is that we can easily the next generation of homoiconic languages.


Properties

Version0.0.0.0
Dependenciesbase (==4.6.*), data-ref, either (==4.1.*), mtl (==2.1.*), parsec (==3.1.*), transformers (==0.3.*)
LicenseBSD3
AuthorZankoku Okuno
Maintainerzankoku.okuno@gmail.com
CategoryLanguage
Home pagehttps://github.com/Zankoku-Okuno/hexpr/
UploadedThu Apr 3 18:24:27 UTC 2014 by ZankokuOkuno
DistributionsNixOS:0.0.0.0
Downloads133 total (9 in last 30 days)
StatusDocs available [build log]
Successful builds reported [all 1 reports]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees