It's good to see Arc stands up pretty well here. The destucturing syntax looks cleaner in Arc, and Anarki allows you to have multiple unnamed arguments too. Clojure's implicit gensyms are nice, but w/uniq isn't too bad.
Unfortunately, it has all the downsides too, and no SLIME integration (and I still can't get Arc mode running in Emacs) :(
This link came from reddit, and the blog mentions some fun but underlighted things in clojure. It is sort of funny that the second 'cool' thing the blog post mentions, it also mentions 'just like in arc'.
I quoted the relevant section of the blog here.
2. Unnamed arguments for short lambdas
Pretty straightforward:
(map #(+ % 4) '(1 2 3))
-> (5 6 7)
;; Multiple arguments.
(map #(* %1 %2) '(1 2 3) '(4 5 6))
-> (4 10 18)
This is roughly equivalent to Arc’s [+ _ 4] form, though allows for more than one argument. The standard lambda form is also similar to Arc’s:
(map (fn [x] (+ x 4)) '(1 2 3)
-> (5 6 7)
Note that this is currently bugged in Arc-F though. Will fix ^^.
The auto-gensyms thing looks cute. It might be possible to hack something like that, although it would require modifying the axiomatic quasiquote operator.
Programming languages are things understandable by brains and executable by computers. In the long run, the interface to the latter will change as computer architectures change. What PG is looking for with Arc (I think) is the optimal interface to the former.