Hacker News new | past | comments | ask | show | jobs | submit login
MISC: A homoiconic language based on maps (thimbleby.net)
31 points by emmett on July 10, 2008 | hide | past | favorite | 10 comments



A huge number of interesting ideas. High points for me:

An elegant system for metadata which can be used to implement documentation, pretty printing, types, debugging, logging, and other such meta things.

Keyword arguments are baked in for free.

Direct read/write access to the environment as a map.


> Direct read/write access to the environment as a map.

this is one of the things i like about Lua (which is listed there as a source of ideas)

i definitely don't like the choice of square brackets though, it's very ugly and hard to read. they should have stuck with parens


I do like the square brackets. They don't require holding down shift. And when you're writing the next killer app, and in the process, end up setting the world record for the longest string of subsequent ')' characters... that saves you a ton of stress on your pinky finger ;-)


Not if you re-map '(' and ')' to the '[' and ']' keys which, I think, is commonly done.


i use programmer dvorak :D all the brackets (except <>) are unshifted


I don't like the required quoting/unquoting in let and lambda. Otherwise really good.


I agree. It would be easy enough to write autoquoting versions as macros, but since the names are taken your new let/lambda would have to be named something else.


Very nice, although they could have reversed the roles of square and ordinary brackets. Especially since square brackets mean "list of stuff" in most scripting languages.


But think how much shift-key this saves. For a language that's fully bracketed/parenthesized, would be nice to be able to hit both bracket keys without holding Shift or tweaking the keybindings.


I was especially amazed by the syntax for quoting and forced evaluation. Very nice and seems better for some cases than the lisp backquote.




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

Search: