Well, the language is indeed inspired by Rebol - in the sense that it is block-based (where blocks are nothing but lists of words and symbols, without any initial meaning). However, it also combines many other concepts. Basically, think of it as a fusion between Haskell and Ruby with the (inexistent) syntax of Rebol.
If you want to get a feel of it, just try it online @ http://arturo-lang.io/ or check one of the many working examples already there. :)
Blocks in Rebol are not a mere "stuff" delineated by square brackets. Rather, it's a heterogeneous container that can hold first-class values and represent both code and data (homoiconic property), thus serving as a base for the syntactically-rich data format.
It also has a well-defined model [1] within the language, and, as such, can be freely operated upon at the run-time.
On a grand scale of language design, blocks form a concrete-syntax tree that can be derived from (or converted to) both textual [2] and serialized binary [3] forms.
Moreso, Rebol's syntax was in fact inspired by Logo. So, the relation between Arturo and Rebol seems to be very superficial; reminds me of Spry [4] that claims to be Rebol-like but is in fact an opinionated Smalltalk.
Well, I didn't say it's a Rebol-derivative. I just said some part of the syntax (which by the way is much more close to Rebol/Red than you think) is inspired by Rebol.
I wanted an easy-to-read format and homoiconicity and since there was one already, this was the way to go.
Now, Arturo tries to offer much more (that's why I started the project in the first place anyway). I have many-many working examples in the /examples folder of the repo so that you can try it out if you want.
All comments, suggestions and ideas are more than welcome! :)
5 comments
[ 2.8 ms ] story [ 20.9 ms ] threadIn what aspects does it differ from traditional Rebol (v2)?
If you want to get a feel of it, just try it online @ http://arturo-lang.io/ or check one of the many working examples already there. :)
It also has a well-defined model [1] within the language, and, as such, can be freely operated upon at the run-time.
On a grand scale of language design, blocks form a concrete-syntax tree that can be derived from (or converted to) both textual [2] and serialized binary [3] forms.
Moreso, Rebol's syntax was in fact inspired by Logo. So, the relation between Arturo and Rebol seems to be very superficial; reminds me of Spry [4] that claims to be Rebol-like but is in fact an opinionated Smalltalk.
[1]: http://www.rebol.com/docs/core23/rebolcore-6.html
[2]: https://pointillistic.com/ren/
[3]: https://github.com/red/docs/blob/master/en/redbin.adoc
[4]: http://sprylang.se/
I wanted an easy-to-read format and homoiconicity and since there was one already, this was the way to go.
Now, Arturo tries to offer much more (that's why I started the project in the first place anyway). I have many-many working examples in the /examples folder of the repo so that you can try it out if you want.
All comments, suggestions and ideas are more than welcome! :)