Re:Red programming language 0.6.2: LibRed and Macros
by abecedarius on Monday March 27, 2017 @07:02PM
(#13972602)
That does look handy! I guess there must be a tradeoff in having your text default to meaning plain words if you mess up the syntax? Versus hopefully getting an error in the ES6 case.
Re:Red programming language 0.6.2: LibRed and Macros
by greggirwin on Monday March 27, 2017 @07:17PM
(#13972675)
You can always get errors of course. The new `load/trap` feature gives you more flexibility in that area, but there are limits as with anything. Pretty handy for CLIs, though, when you expect your audience to know what "syntax" even means. :)
Re:Red programming language 0.6.2: LibRed and Macros
by vram22 on Tuesday March 28, 2017 @10:08AM
(#13976668)
No need to apologize, that was a good example :)
I liked this big:
>> unique collect [foreach val blk [keep type? val]] == [word! time! email! url! paren! file! issue! pair! tuple! set-word!]
I think it could almost be read and understood by a person who does not know REBOL or Red.
Re:Red programming language 0.6.2: LibRed and Macros
by greggirwin on Tuesday March 28, 2017 @04:58PM
(#13980638)
Yup. We often write code like normal programmers, but sometimes we do build up vocabularies more, even when not using `parse` to write DSLs.
"Red or REBOL" = Redbol (sounds like Red Bull) :) And where Perl has Mongers, Ruby has Rubyists, Python has Pythonistas, and Rebol has Rebolers, Red has Reducers.
Re:Red programming language 0.6.2: LibRed and Macros
by vram22 on Thursday March 30, 2017 @12:36PM
(#13996847)
Ha, Reducers is a good term, considering: the goals of Red (reducing complexity being one), the small size of Red (and REBOL) programs that get non-trivial things done, and finally the size of the software itself (the interpreter - and also compiler in the case of Red). Even the small EXE sizes, in fact (though I've only created EXEs for small programs so far, with it).
Red doesn't have all types in place yet (e.g. date! is coming, and maybe an @ref type, among others), but can still load the following:
Here's a quick console session showing what types it found: And you can parse at that level: Of course, you could do something similar in ES6. If you use template literals, your data might look like this: Sorry for getting carried away. :)