david pasquinelli — 24-Nov-2017/14:11:44-8:00
i'm interested in learning rebol, but something that's grating on my nerves is how all the written material associated with it takes the tone of an advertisement.
i most interested in dialecting, but, because of the breathless tone of everything i've found, i'm not sure if i should be. is "dialect" just rebol's terminology for what other languages call libraries or modules? or is the idea that by having a parse function you can load your own language and parse it to rebol data?
Graham — 24-Nov-2017/15:31:32-8:00
The latter for sure.
Chris — 24-Nov-2017/15:35:59-8:00
I'd recommend a read of Rebol in Ten Steps: http://rebol.info/rebolsteps.html
To try and summarize, Rebol is a homoiconic language (both in notation and the in-memory values). Most commonly these values are loaded and interpreted as 'Rebol'. However, blocks of values are not evaluated unless explicitly so:
my-block: [print "Hello World!"]
do my-block
reduce my-block
if true my-block
It is therefore possible to handle them in different ways:
parse my-block ['print set value-to-print string! (print ["I am printing:" value-to-print])]
PARSE is based on BNF grammar so is quite versatile for defining relatively expressive sub-languages. Note that the rule you supply to PARSE is itself a dialect--if you were to try to evaluate it, things would not go so well:
do ['print set value-to-print string! (print ["I am printing:" value-to-print])]
See also:
http://blog.hostilefork.com/why-rebol-red-parse-cool/
https://forum.rebol.info/t/more-than-just-code-a-deep-lake/295
An example dialect "StyleTalk": https://github.com/rgchris/StyleTalk#example
If the tone is breathless or marketing-esque, it's because it is distinguishing feature of the language, and 'dialect' is a fairly descriptive term: it is what other languages might call a 'Domain Specific Language', but while dialects share the lexical rules of Rebol, they can employ entirely different grammatical rules.
Nick — 25-Nov-2017/4:39:13-8:00
Also take a look at http://vpavlu.plain.at/REBOL/tutorial/REBOL%20Essentials%2337-09-jan-2003.pdf starting at page 40
Nick — 25-Nov-2017/9:16:58-8:00
Be sure to see:
http://web.archive.org/web/20120510120959/http://www.rebolforces.com/zine/rzine-1-02.html#sect7
Here are some more useful links about dialects and parse (you'll have to ignore the tone in the first one):
http://rebolforum.com/index.cgi?f=printtopic&permalink=Nick13-Dec-2013/16:40:11-8:00&archiveflag=archive
http://rebolforum.com/index.cgi?f=printtopic&permalink=Nick19-Jan-2014/18:29:47-8:00&archiveflag=new
Chris — 26-Nov-2017/11:59:21-8:00
Nick--note that the Rebol Forces archive is now republished on rebol.info/forces
http://rebol.info/forces/zine/rzine-1-02/#sect7.
Nick — 26-Nov-2017/22:55:11-8:00
Thanks Chris, that's great to see.