That'll work fine, although the 'do in your function is unnecessary. Also, there is a macro 'or= that does precisely what your first line does (assigns a value to a place if it is nil):
I'm not sure how any of these can work for intializing a table that's not aleady a table...
(= k* '("1" "2" "3"))
(= v* '("One" "Two" "Three"))
assuming t* has not been set - this is what I get:
arc> (filltbl t* k* v*)
Error: "reference to undefined identifier: _t*"
or even:
arc> (filltbl 't* k* v*)
Error: "Can't set reference t* \"1\" \"One\""
so what am I missing ?
filltbl isn't a macro, nor does it affect the global namespace. As written, it just creates a table if its first arg is nil. Of course, this is useless unless it returns that table... oops.
You could push it onto Anarki. Other than that, there isn't much you can do to get it into a public arc.arc. It seems that if a function isn't used in the forum code, pg doesn't include it in the official release.
But ^ is the symbol for conjunction, i.e. "and"-ing (well, not the literal caret, but the upwards-pointing symbol -- $\wedge$ in Latex). Did you mean to suggest ^ instead of +?
1) powerful macros
2) functional and imperative programing
3) strong tree handling functions
Disadvantages:
1) arc is somewhat slow.
2) arc has few libraries
There might be more, but lisp is just a programming language like everything else. It might be somewhat better, but odds are it won't be a "silver bullet".
I think that Lisp can support good quality syntax parsers. An example of this, although it's not a full fledged language, is CatDancer's JSON parser built on top of a general-purpose parser library: http://hacks.catdancer.ws/parser-combinator-approach-to-json... (it's a long article, the relevant parts are the ones about the parser-combinator approach).
Also, it seems as though your in-house language isn't completely specified yet. One area where Lisp excels is implementing unspecified things, and changing them with great flexibility on-the-fly.
Shader mentioned that Arc is slow, and this does seem to be the case. If you really want to use a Lisp, and Arc is too slow, it's probably worth looking at a few other Lisps before turning to Option A -- there are very fast implementations of both Common Lisp and Scheme.