[parenscript-devel] Implicit return for function bodies
sblist at me.com
sblist at me.com
Thu Nov 5 19:20:02 UTC 2009
Hi Vladimir,
Another tricky area for implicit return is in IF/WHEN/UNLESS. What
happens currently is that when a conditional is in an expression
place (such as after a RETURN statement), it is converted into
a ternary expression.
This works when the branches of the conditional contain only
assignments and expressions, but you get a syntax error if
there is a switch, for, or while statement in the branch body.
I'm not sure how to handle this in the general expression-place
scenario, but it seems like implicit return should handle all of
the conditional branches -- something like this:
(ps (lambda () (when x y)))
=>
"function () {
return x ? y : null;
};"
becomes:
(ps (lambda () (when x y)))
=>
"if (x) {
return y;
};"
or perhaps:
(ps (lambda () (when x y)))
=>
"if (x) {
return y;
} else {
return null;
};"
- Scott
On 2009-11-04, at 12:57 PM, Vladimir Sedach wrote:
> Hello,
>
> Many of you have been asking for this for a long time, and based on
> feedback (as well as my own experience) the lack of this feature has
> been the biggest cause of bugs in PS code, so it's with a bit of joy
> that I just pushed out a patch to add implicit returns to PS functions
> (including lambdas and flet/labels) to the repository just now. Please
> try it out and report any bugs you find!
>
> Thank you,
> Vladimir
>
> _______________________________________________
> parenscript-devel mailing list
> parenscript-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
More information about the parenscript-devel
mailing list