January 12, 2012
11:39 PM
v.map {|e| e*e}
Er, not even that -- Arguments required in a CallExpression, so v().map
or v.map() but not just v.map. Fixes coming tomorrow.
/be
or
get_map() {|e| e*e}
or similar. I will fix.
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
January 12, 2012
11:16 PM
http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revivalI’m
trying to understand the syntax:
BlockArguments :
BlockLambda
BlockArguments [no LineTerminator here] BlockLambda
BlockArguments [no LineTerminator here] ( InitialValue )
-
Wouldn’t this allow the following? BlockLambda [no LineTerminator here]
BlockLambda
- InitialValue means that paren-free can be combined
with arguments that aren’t blocks, right?
myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | ... }
I
think I would prefer the following (IIRC, more like Ruby):
myLoopFunc(initValue1, initValue2) { | arg1, arg2 | ... }
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
January 12, 2012
11:16 PM
Yes.
- InitialValue means that paren-free can be combined with
arguments that aren’t blocks, right?
Yes.
myLoopFunc(initValue1)(initValue2) { | arg1, arg2 |
... }
No, the myLoopFunc(initValue1) is a CallExpression -- see
CallWithBlockArguments :
CallExpression [no LineTerminator here] BlockArguments
The *return value* of that ordinary CallExpression is the callee of the paren-free call.
I think I would prefer the following (IIRC, more like
Ruby):
myLoopFunc(initValue1, initValue2) { | arg1, arg2 |
... }
That parses, as described above. The two-argument CallExpression must
return a function that takes the block arguments.
I see a problem in the grammar in the strawman, now that you mention it:
no way to produce a simple identifier callee from CallExpression, so no
map {|e| e*e}
only
v.map {|e| e*e}
or
get_map() {|e| e*e}
or similar. I will fix.
/be
http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revivalI’m
trying to understand the syntax:
BlockArguments :
BlockLambda
BlockArguments [no LineTerminator here] BlockLambda
BlockArguments [no LineTerminator here] ( InitialValue )
-
Wouldn’t this allow the following? BlockLambda [no LineTerminator here]
BlockLambda
- InitialValue means that paren-free can be combined
with arguments that aren’t blocks, right?
myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | ... }
I
think I would prefer the following (IIRC, more like Ruby):
myLoopFunc(initValue1, initValue2) { | arg1, arg2 | ... }