simple shorter function syntax
Mark S. Miller
erights at google.com
Sun Jul 25 17:07:55 PDT 2010
On Sun, Jul 25, 2010 at 4:57 PM, Maciej Stachowiak <mjs at apple.com> wrote:
>
> On Jul 24, 2010, at 11:51 AM, Mark S. Miller wrote:
>
> On Fri, Jul 23, 2010 at 10:37 AM, Oliver Hunt <oliver at apple.com> wrote:
>
>>
>> On Jul 23, 2010, at 10:32 AM, Brendan Eich wrote:
>>
>> > On Jul 23, 2010, at 10:27 AM, Oliver Hunt wrote:
>> >
>> > [Good point about LL(∞) snipped.]
>> >
>> >> * To give you an idea of how important parsing is, the 280 North folk
>> once told me that parsing made up 25% of the load time for 280 Slides.
>> >
>> > Ollie, was that with browser-side Objective-J compilation, or with the
>> server translating and feeding the Obj-J-lowered-to-JS code to the browser?
>>
>> I believe it was with the browser being passed preprocessed source, but
>> i'll harass them to find out.
>>
>> > I have polled audiences at talks in the last year about shorter function
>> syntax, see first two links at http://brendaneich.com/presentations/.
>> Results mainly for fun but somewhat informative (to me at any rate) were not
>> resoundingly in favor of a new and much shorter keyword to use instead of
>> function.
>> >
>> > This was before
>> http://wiki.ecmascript.org/doku.php?id=strawman:shorter_function_syntaxwas proposed, so I didn't ask the audiences to clap for its # syntax.
>> >
>> > People like the expression-closure idea, although syntax needs to be
>> hammered out. See
>> https://developer.mozilla.org/en/new_in_javascript_1.8#Expression_closures_%28Merge_into_own_page.2fsection%29<https://developer.mozilla.org/en/new_in_javascript_1.8#Expression_closures_(Merge_into_own_page.2fsection)>
>>
>> I personally am not too fussed about the reduced typing -- if people
>> really wanted reduced typing we could simply adopt "\" which seems to be the
>> common symbol used for a function.
>>
>
> The reason I prefer "#" to "\" is simply that JavaScript source text
> [fragments] frequently appear in literal strings. Right now, the only
> quoting hazard this introduced is quotes and backslashes in nested literal
> strings. (Is this true?). If you use backslash in syntax elsewhere in the
> language, then it becomes an additional quoting hazard that's easy to miss.
>
> +1 on "#".
>
>
> Good point about the escaping hazard. I think # may look funny to people
> because it is a "noisy" symbol and also because it is a comment delimiter in
> many languages. Two other characters totally disallowed in the syntax are @
> and `, I wonder if either of those would be more visually pleasing:
>
> [0, 1, 2, 3].map( #(x) {x * x} )
> [0, 1, 2, 3].map( `(x) {x * x} )
> [0, 1, 2, 3].map( @(x) {x * x} )
>
> I also wonder if using a strictly binary operator might be workable without
> creating syntax ambiguities:
>
> [0, 1, 2, 3].map( ^(x) {x * x} )
> [0, 1, 2, 3].map( *(x) {x * x} )
> [0, 1, 2, 3].map( %(x) {x * x} )
>
>
> I kind of like ` but it may be too visually subtle and may be confusing to
> lisp users. @ seems less visually harsh than #. I like ^ for resemblance to
> lambda,
>
Cool idea. Even better, it looks like an uppercase lambda: <
http://en.wikipedia.org/wiki/Lambda>. If it doesn't create syntactic
ambiguities, +1 on "^".
> overall visual weight, and alignment with Apple's "blocks" extension to
> C[1]. I have a vague memory that we discussed ^ before and discarded it, but
> I can't find that discussion in the archives at the moment.
>
> Perhaps the strawman page for shorter function syntax should list reasons
> for rejecting other syntax options. I would be happy to document the reasons
> against fn, fun, f and \, but I can't seem to remember my username and
> password (I'm not even sure if I have an account). Who can help with wiki
> access issues?
>
I think that would be Brendan.
>
> Regards,
> Maciej
>
> [1] http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
>
>
--
Cheers,
--MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20100725/4e38483d/attachment.html>
More information about the es-discuss
mailing list