2) is an interesting idea, but would it really be useful ? The only real use I can think of is your example with multiple cdrs, but then wouldn't it be better to add the cdr functions up to 4 ds, then use the composition syntax in the rare cases you would need more ?
I don't like this because then you have inconsistent behavior between types. It feels like you're saying, "If you can find something useful to do on function call, do that... otherwise just run is." Why wouldn't
I don't like it. What does (tb x) mean ? Does it mean "look for the key 'x in table 'tb" (provided 'tb is a table) or "is variable 'x holding the same thing as variable 'tb" ?
However, I think this could be a good candidate for ssyntax :
1) Not feasible currently. 'foo.bar expands to (foo bar), so you're example would expand to (x y z), or ((1 2 3) (4 5 6) (7 8 9)) where (1 2 3) is being applied as a function.
While it could be implemented, I think it would only serve to further confuse existing syntax.
2) This require some serious hackery on integers to get that to work.
I don't like the list concatenation idea, but I think the Church encoding idea, while maybe not good per se, is at least interesting and perhaps worth considering.
Really? I thought easy list concatenation was the better idea. Arc is a list-based language, and concatenation is a very basic list operation, so I thought it would be a good thing to optimise it as much as possible.