Evan, I find that project really interesting as it opens Arc to new perspectives usable in the "real world".
When you give Javascript examples, you seem to care a lot about jQuery (with good reasons, of course). Wouldn't it be possible to separate the Arc-that-compile-in-js and jQuery?
Just to be clear, you could use Arc functions as callback with jQuery.. but jQuery will keep its javascript syntax.
Ideally, that would be also possible:
$('.click_me').click((fn () (alert 'test')));
And
$('.click_me').click([alert "test"]);
However, we have some problems such as:
; How to differentiate betweens javascript syntax or arc/js syntax?
$.each([1,2,3], [alert _]);
To fix that, it might be possible to separate Arc expressions with a delimiter or something when it is used inside jQuery:
$.each([1,2,3], ~[alert _]);
$('.click_me').click( ~(fn () (alert "test")));
$('.click_me').click( ~[alert 'test]);
$('click_me').click( function(e) {
~(alert "test in js/arc")
alert("test in pure js");
});
$('.click_me').keydown( ~[here, _ would be bound to the event object]);
And just as a matter of preference, I find:
({} a b c d) -> js: {a: 'b', c: 'd'}
Better than the single { equivalent. (Not to mention that it would screw up all editors :p)
([] 1 2 3) -> [1,2,3]
So you could do:
(([] 10 12 14) 1) -> 12
Even if you disagree with everything I said here, I really wish you could go forward with that project :)
> Wouldn't it be possible to separate the Arc-that-compile-in-js and jQuery?
I'd never thought of this before. I especially like your examples with the delimiter for switching between syntaxes. CoffeeScript provides one of those (http://jashkenas.github.com/coffee-script/#embedded), and I think you're right that it'd be nice to have.
> I find: ({} a b c d) -> js: {a: 'b', c: 'd'} Better than the single { equivalent.
([ 1 2 3) and ({ a 1 b 2) are kind of an abuse of s-expressions. I think the fact that I want them suggests I should be going all the way to [1 2 3] and {a 1 b 2}, without the parens at all. If you have to delimit them with parens, I agree [] and {} have advantages.
(Not to mention that it would screw up all editors :p)
Haha, yes it would. I finally had to turn paredit off in emacs when I was writing these expressions.