Rose programming language
rose is a derivative of fig created in october 2017, as a text-only alternative to fig. it should run on most or all platforms that fig runs on.
use p
"Hello, world!"
cdx
display
the most recent version of rose (as of this writing) is 0.2.
the cdx command is like the "arr" command in fig; instead of converting p to an array, it converts it to a "codex", which is a specially handled dictionary type.
python dictionaries are not sorted, and they are not compatible with list-oriented features like split and join. a codex is a hybrid list[lit]/[lit]dictionary, which is comparable with the split and join commands in rose, and allows concatenation of other dictionaries (which are merged) and also individual values (which are appended.)
when accessed by features such as display (the "print" feature of rose) or a forin loop, the dictionary is addressed via a sorted copy of its keys. however, a codex is still a dictionary! values can be placed dictionary-style into a codex, and they can be referenced dictionary style-- which means that you have the speed advantage of a dictionary for larger codices, and that you dont have to resize like an array to add a value to say, the 500th index; simply use 500 as the key.
some list-oriented features will change the keys of a codex; whether this is a problem or not depends on how you intend the codex to be used. if you are using it as a dictionary, you wont want to use the sort feature; it will renumber all the keys; you should be able to copy the dictionary and sort the copy instead.
for everyday coding tasks, fig is probably more useful as a language; but for the codex feature, rose is strongly recommended as an experiment in design.