On 10/10/06, Joel VanderWerf <vjoel / path.berkeley.edu> wrote: > How does it compare with amarshal? > > http://raa.ruby-lang.org/project/amarshal/ Both are ruby-based serialization packages/languages. Amarshal generates imperative code, tho, whereas in Ron I've tried to take a purely declarative approach. For instance the amarshal representation of [1,2,3] (taken from the website) is: v = [] v[0] = Array.allocate() v[0] << 1 v[0] << 2 v[0] << 3 v[0] In Ron, it's merely: "[1,2,3]". A more interesting example would be a recursive data structure, say an array containing itself. Here's amarshal (extrapolating , haven't tried this): v = [] v[0] = Array.allocate() v[0] << v[0] v[0] Versus Ron: Recursive(v1_={}, [v1_]) Since this is essentially a declarative problem, my declarative syntax should be shorter and (hopefully) more readable in most cases. > At first glance, the notation > > K-{:a=>1, :b=>2} > > for a literal instance of K seems new and interesting. Well, thanks. As to Jonas's question about this syntax, yes, it's just a matter of defining Class#-.