Hacker News new | past | comments | ask | show | jobs | submit login
007, a small experimental language with a license to macro (github.com/masak)
121 points by jsnell on Oct 3, 2015 | hide | past | favorite | 14 comments



Author here. Thanks for all the kind words. README files are important, and I worked quite a bit on this one. Had some fun writing it.

A quick summary of the language itself: I felt I needed a smaller language than Perl 6 to "think" in as I mapped out exactly what we want from macros. If you're curious about the latest shape of that thinking process, you'll want to read https://gist.github.com/masak/13210c51f034f931af0c .

Implementing 007 has been a fun thing, and largely easier than I thought. Mostly bottlenecked by available tuits. Somewhat surprisingly, I found it much tougher going to implement user-defined operators than to implement macros. (But now that we have both, you can also haz custom operator macros!)

Next up, I plan to use 007 to map out as much of the terrain as possible covered by that gist above. That is, I want 007 to get synthetic Qtrees, really good handling of hygiene and lexical scoping, statement macros, maybe multis if I feel it's worth the trouble, introspection of Qtrees, and visitor macros.


For those interested in seeing the language, the README has a link to the tutorial ( http://masak.github.io/007/ ) hidden at the very bottom of the (highly entertaining) narrative.


Aw c'mon, it was a gripping read until the end and then.. no unquote?!


Oh, we'll get unquotes, don't worry. It's more a question of not-yet-implemented than anything else.

Here I might as well ask HN what syntax I should go with for unquotes in 007. In Perl 6, unquotes are written as three nested braces: {{{$ast}}}

Almost no-one is happy with that syntax. It manages to be distinctive (and can be easily syntax-highlighted, too) but pretty it ain't.

The difficulty of finding something better is that it has to be orthogonal to basically all other syntax in the language. And that's a challenge in Perl. :) People keep proposing Unicode sigils and stuff, but I haven't seen something I like yet.


Of all movies to quote, he picks Never Say Never Again...


I have to admit I did not even look at the language itself, the README made me upvote this.


Definitely more engaging than the usual "made with love" bootstrap website.


That README was amazing.


Another project with an awesome README by the same author: https://github.com/masak/ufo


Considerably.


I don't understand a clue of what this macro thing is, but let's upvote this and every comment made by principle.


Can confirm, this is how READMEs should be done.


First time i read a README from first to last word. Good job!


It sure was something different to read :)




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

Search: