Topic: let-in statements and anonymous variables
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Wed, 28 Nov 2012 20:18:46 +0100
Raw View
This is a multi-part message in MIME format.
--------------070503020203030503040903
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Lastly there have been some discussion about RAII constructions. A
Java language-like synchronized macro was suggested
*synchronized*(expression) statement
The library solution (no macros) is based on RAII factories. This needs
to declare a variable on the scope on which the destructor must be called.
{ const auto&& v1 =synchronize(mtx); statement }
I was wondering if we couldn't extend the language with two features so
that the library solution is close to the specific language extension
even if we introduce some noise.
The idea is to extend the standard with a statement that introduce a
variable (anonymous variable) on a given scope, something as
let <declaration> in <statement>
In order to avoid new keywords I think that separating the declaration
and the statement with ':' could be clear enough.
statement :
| <declaration> : <statement>
The following
auto = expression : statement
will be equivalent to
{
const auto&& __uid__= expression; statement
}
where __uid__ is a new unique identifier generated by the compiler.
With this new statement the preceding change proposals on the language
will be solved as
auto&& = synchronize(mtx) : { ... }
Of course the question is if it is worth making minor changes on the
language to replace a pure library solution
{
const auto&& lk = synchronize(mtx) :
f();
}
by
auto&& = synchronize(mtx) : f();
and
{
auto&& lk = synchronize(mtx) :
// more than one statement
}
by
auto&& = synchronize(mtx) :
{
// more than one statement
}
Vicente
--
--------------070503020203030503040903
Content-Type: text/html; charset=ISO-8859-1
<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Lastly there have been some discussion about RAII constructions. A
Java language-like synchronized macro was suggested<br>
<br>
<b>synchronized</b>(expression) statement<br>
<br>
The library solution (no macros) is based on RAII factories. This
needs to declare a variable on the scope on which the destructor
must be called.<br>
<br>
<br>
{ const auto&& v1 =synchronize(mtx); statement }<br>
<br>
<br>
I was wondering if we couldn't extend the language with two features
so that the library solution is close to the specific language
extension even if we introduce some noise.<br>
<br>
The idea is to extend the standard with a statement that introduce a
variable (anonymous variable) on a given scope, something as<br>
<br>
let <declaration> in <statement><br>
<br>
In order to avoid new keywords I think that separating the
declaration and the statement with ':' could be clear enough.<br>
<br>
statement :<br>
| <declaration> : <statement><br>
<br>
<br>
The following<br>
<br>
auto = expression : statement<br>
<br>
will be equivalent to<br>
<br>
{<br>
const auto&& __uid__= expression; statement<br>
}<br>
<br>
where __uid__ is a new unique identifier generated by the compiler.<br>
<br>
With this new statement the preceding change proposals on the
language will be solved as<br>
<br>
auto&& = synchronize(mtx) : { ... }<br>
<br>
<br>
Of course the question is if it is worth making minor changes on the
language to replace a pure library solution<br>
<br>
{<br>
const auto&& lk = synchronize(mtx) :<br>
f();<br>
}<br>
<br>
by<br>
auto&& = synchronize(mtx) : f();<br>
<br>
<br>
and<br>
{<br>
auto&& lk = synchronize(mtx) :<br>
// more than one statement<br>
}<br>
<br>
by<br>
<br>
auto&& = synchronize(mtx) :<br>
{<br>
// more than one statement<br>
}<br>
<br>
<br>
Vicente<br>
<br>
</body>
</html>
<p></p>
-- <br />
<br />
<br />
<br />
--------------070503020203030503040903--
.
Author: grigorij1981@gmail.com
Date: Wed, 28 Nov 2012 11:42:44 -0800 (PST)
Raw View
: is bad for that purpose - we have labels that are introduced with similar=
syntax. I do not think that we should go in that direction - we'd better f=
ix lambdas.
Anyway the solution with lambdas or this one rarely do not need curly brace=
s. I have written that code in c# - the C language family simply do not sui=
t for lambdas inside lambdas inside lambdas style. And the proposed solutio=
n leads to similar style. With anonymous variables we may not need new pair=
of braces.
Regards,
Gregory
--=20
.
Author: grigorij1981@gmail.com
Date: Wed, 28 Nov 2012 11:46:40 -0800 (PST)
Raw View
Edit: while using anonymous variables alone - we sometimes do not need new pair of braces.
--
.
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Fri, 30 Nov 2012 19:30:31 +0100
Raw View
Le 28/11/12 20:42, grigorij1981@gmail.com a =E9crit :
> : is bad for that purpose - we have labels that are introduced with simil=
ar syntax.
I have no problem using another syntax.
> I do not think that we should go in that direction - we'd better fix lamb=
das.
What would you want to fix?
>
>
> Anyway the solution with lambdas or this one rarely do not need curly bra=
ces.
And?
> I have written that code in c# - the C language family simply do not suit=
for lambdas inside lambdas inside lambdas style. And the proposed solution=
leads to similar style. With anonymous variables we may not need new pair =
of braces.
>
I'm completely lost here. Could you be more explicit?
Vicente
--=20
.
Author: grigorij1981@gmail.com
Date: Sat, 1 Dec 2012 06:17:33 -0800 (PST)
Raw View
------=_Part_105_33408766.1354371453671
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Sorry for incoherence.
=20
On fixing lambdas. For example, we could allow single expression lambdas to=
=20
be declared without curly braces. That would give us most of the benefits=
=20
that let-in bindings give us.
It will be a little bit more noisy, but much. Consider
=20
synchronized(mt, []() .... );
=20
Or another variant:
=20
synchronized(mt) << [] () ..... ;
=20
On the style. The solutions with lambdas or let-in bindings instead of pure=
=20
RAII have a drawback, that there appears to be a lot more braces than in=20
pure RAII, which results in syntactic noise.
Imagine you need 3 or 4 RAII objects in the function. So, you create let=20
binding for the first, then inside it create let binding for the second and=
=20
so on...
And now the code is much less readable. With RAII you sometimes need to put=
=20
additional braces, and sometimes it looks ugly, but IMHO with let-bindings=
=20
everywhere code would be much more ugly than without them.
=20
Regards,
Gregory
=20
=20
=D0=9F=CA=BC=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D1=8F, 30 =D0=BB=D0=B8=D1=81=D1=
=82=D0=BE=D0=BF=D0=B0=D0=B4=D0=B0 2012 =D1=80. 20:30:31 UTC+2 =D0=BA=D0=BE=
=D1=80=D0=B8=D1=81=D1=82=D1=83=D0=B2=D0=B0=D1=87 viboes =D0=BD=D0=B0=D0=BF=
=D0=B8=D1=81=D0=B0=D0=B2:
> Le 28/11/12 20:42, grigor...@gmail.com <javascript:> a =C3=AF=C2=BF=C2=BD=
crit :=20
> > : is bad for that purpose - we have labels that are introduced with=20
> similar syntax.=20
> I have no problem using another syntax.=20
> > I do not think that we should go in that direction - we'd better fix=20
> lambdas.=20
> What would you want to fix?=20
> >=20
> >=20
> > Anyway the solution with lambdas or this one rarely do not need curly=
=20
> braces.=20
> And?=20
> > I have written that code in c# - the C language family simply do not=20
> suit for lambdas inside lambdas inside lambdas style. And the proposed=20
> solution leads to similar style. With anonymous variables we may not need=
=20
> new pair of braces.=20
> >=20
> I'm completely lost here. Could you be more explicit?=20
>
> Vicente=20
>
>
--=20
------=_Part_105_33408766.1354371453671
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div>Sorry for incoherence.</div><div> </div><div>On fixing lambdas. F=
or example, we could allow single expression lambdas to be declared without=
curly braces. That would give us most of the benefits that let-in bindings=
give us.</div><div>It will be a little bit more noisy, but much. Consider<=
/div><div> </div><div><font face=3D"courier new,monospace">synchronize=
d(mt, []() .... );</font></div><div> </div><div>Or another variant:</d=
iv><div> </div><div><font face=3D"courier new,monospace">synchronized(=
mt) << [] () ..... ;</font></div><div><font face=3D"Courier New"></fo=
nt> </div><div><font face=3D"arial,sans-serif">On the style. The solut=
ions with lambdas or let-in bindings instead of pure RAII have a drawback, =
that there appears to be a lot more braces than in pure RAII, which re=
sults in syntactic noise.</font></div><div>Imagine you =
need 3 or 4 RAII objects in the function. So, you create let=
binding for the first, then inside it create let binding for the second an=
d so on...</div><div>And now the code is much less readable. With RAII you =
sometimes need to put additional braces, and sometimes it looks ugly, =
but IMHO with let-bindings everywhere code would be much more ugly tha=
n without them.</div><div> </div><div>Regards,</div><div> Gregory=
</div><div> </div><div> </div><div><br>=D0=9F=CA=BC=D1=8F=D1=82=
=D0=BD=D0=B8=D1=86=D1=8F, 30 =D0=BB=D0=B8=D1=81=D1=82=D0=BE=D0=BF=D0=B0=D0=
=B4=D0=B0 2012 =D1=80. 20:30:31 UTC+2 =D0=BA=D0=BE=D1=80=D0=B8=D1=81=D1=82=
=D1=83=D0=B2=D0=B0=D1=87 viboes =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=B2:=
</div><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex;=
padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-widt=
h: 1px; border-left-style: solid;">Le 28/11/12 20:42, <a href=3D"javascript=
:" target=3D"_blank" gdf-obfuscated-mailto=3D"W1WpP4FaMy0J">grigor...@gmail=
..com</a> a =C3=AF=C2=BF=C2=BDcrit :
<br>> : is bad for that purpose - we have labels that are introduced wit=
h similar syntax.
<br>I have no problem using another syntax.
<br>> I do not think that we should go in that direction - we'd better f=
ix lambdas.
<br>What would you want to fix?
<br>>
<br>>
<br>> Anyway the solution with lambdas or this one rarely do not need cu=
rly braces.
<br>And?
<br>> I have written that code in c# - the C language family simply do n=
ot suit for lambdas inside lambdas inside lambdas style. And the proposed s=
olution leads to similar style. With anonymous variables we may not need ne=
w pair of braces.
<br>>
<br>I'm completely lost here. Could you be more explicit?
<br>
<br>Vicente
<br>
<br></blockquote>
<p></p>
-- <br />
<br />
<br />
<br />
------=_Part_105_33408766.1354371453671--
.
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Sat, 01 Dec 2012 16:13:13 +0100
Raw View
This is a multi-part message in MIME format.
--------------060302080203030304080203
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Le 01/12/12 15:17, grigorij1981@gmail.com a =E9crit :
> Sorry for incoherence.
> On fixing lambdas. For example, we could allow single expression=20
> lambdas to be declared without curly braces. That would give us most=20
> of the benefits that let-in bindings give us.
> It will be a little bit more noisy, but much. Consider
> synchronized(mt, []() .... );
> Or another variant:
> synchronized(mt) << [] () ..... ;
> On the style. The solutions with lambdas or let-in bindings instead of=20
> pure RAII have a drawback, that there appears to be a lot more braces=20
> than in pure RAII, which results in syntactic noise.
> Imagine you need 3 or 4 RAII objects in the function. So, you create=20
> let binding for the first, then inside it create let binding for the=20
> second and so on...
> And now the code is much less readable.
Take in account that we have also the possibility to lock several mutex=20
at once using make_unique_locks. Could you give an example where it is=20
less readable?
> With RAII you sometimes need to put additional braces, and sometimes=20
> it looks ugly, but IMHO with let-bindings everywhere code would be=20
> much more ugly than without them.
Why do you want to use let-bindings everywhere?
-- Vicente
--=20
--------------060302080203030304080203
Content-Type: text/html; charset=ISO-8859-1
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Le 01/12/12 15:17,
<a class="moz-txt-link-abbreviated" href="mailto:grigorij1981@gmail.com">grigorij1981@gmail.com</a> a écrit :<br>
</div>
<blockquote
cite="mid:b6f58b9e-8eeb-4290-9c85-a40d175cb634@isocpp.org"
type="cite">
<div>Sorry for incoherence.</div>
<div> </div>
<div>On fixing lambdas. For example, we could allow single
expression lambdas to be declared without curly braces. That
would give us most of the benefits that let-in bindings give us.</div>
<div>It will be a little bit more noisy, but much. Consider</div>
<div> </div>
<div><font face="courier new,monospace">synchronized(mt, []() ....
);</font></div>
<div> </div>
<div>Or another variant:</div>
<div> </div>
<div><font face="courier new,monospace">synchronized(mt) <<
[] () ..... ;</font></div>
<div> </div>
<div><font face="arial,sans-serif">On the style. The solutions
with lambdas or let-in bindings instead of pure RAII have a
drawback, that there appears to be a lot more braces than in
pure RAII, which results in syntactic noise.</font></div>
<div>Imagine you need 3 or 4 RAII objects in the function. So, you
create let binding for the first, then inside it create let
binding for the second and so on...</div>
<div>And now the code is much less readable. </div>
</blockquote>
Take in account that we have also the possibility to lock several
mutex at once using make_unique_locks. Could you give an example
where it is less readable?
<blockquote
cite="mid:b6f58b9e-8eeb-4290-9c85-a40d175cb634@isocpp.org"
type="cite">
<div>With RAII you sometimes need to put additional braces, and
sometimes it looks ugly, but IMHO with let-bindings
everywhere code would be much more ugly than without them.</div>
</blockquote>
Why do you want to use let-bindings everywhere?<br>
<br>
-- Vicente<br>
</body>
</html>
<p></p>
-- <br />
<br />
<br />
<br />
--------------060302080203030304080203--
.
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Sat, 01 Dec 2012 16:21:26 +0100
Raw View
This is a multi-part message in MIME format.
--------------090705080807090802030302
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Le 01/12/12 15:17, grigorij1981@gmail.com a =E9crit :
> Sorry for incoherence.
> On fixing lambdas. For example, we could allow single expression=20
> lambdas to be declared without curly braces. That would give us most=20
> of the benefits that let-in bindings give us.
> It will be a little bit more noisy, but much. Consider
> synchronized(mt, []() .... );
> Or another variant:
> synchronized(mt) << [] () ..... ;
>
Using lambdas has the drawback of not allowing to return from the=20
lambda. This case needs by itself an alternative.
-- Vicente
--=20
--------------090705080807090802030302
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type=
">
</head>
<body bgcolor=3D"#FFFFFF" text=3D"#000000">
<div class=3D"moz-cite-prefix">Le 01/12/12 15:17,
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:grigorij1981@gma=
il.com">grigorij1981@gmail.com</a> a =E9crit=A0:<br>
</div>
<blockquote
cite=3D"mid:b6f58b9e-8eeb-4290-9c85-a40d175cb634@isocpp.org"
type=3D"cite">
<div>Sorry for incoherence.</div>
<div>=A0</div>
<div>On fixing lambdas. For example, we could allow single
expression lambdas to be declared without curly braces. That
would give us most of the benefits that let-in bindings give us.</d=
iv>
<div>It will be a little bit more noisy, but much. Consider</div>
<div>=A0</div>
<div><font face=3D"courier new,monospace">synchronized(mt, []() ....
);</font></div>
<div>=A0</div>
<div>Or another variant:</div>
<div>=A0</div>
<div><font face=3D"courier new,monospace">synchronized(mt) <<
[] () ..... ;</font></div>
<div>=A0</div>
<br>
</blockquote>
Using lambdas has the drawback of not allowing to return from the
lambda. This case needs by itself an alternative.<br>
<br>
-- Vicente<br>
</body>
</html>
<p></p>
-- <br />
<br />
<br />
<br />
--------------090705080807090802030302--
.
Author: grigorij1981@gmail.com
Date: Sat, 1 Dec 2012 07:29:06 -0800 (PST)
Raw View
------=_Part_2033_9959901.1354375746155
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
If it only for locks - then why bother?=20
For locks there's no need for a language feature, something like with_lock=
=20
function would be just fine.
Indeed, if we're talking about locks then you would rarely need to use=20
synchronized (or with_lock) inside synchronized.
=20
My impression was that your idea is to replace RAII with let-bindings in=20
most of the places not only for locking. My objections were against that=20
approach.
=D0=A1=D1=83=D0=B1=D0=BE=D1=82=D0=B0, 1 =D0=B3=D1=80=D1=83=D0=B4=D0=BD=D1=
=8F 2012 =D1=80. 17:13:13 UTC+2 =D0=BA=D0=BE=D1=80=D0=B8=D1=81=D1=82=D1=83=
=D0=B2=D0=B0=D1=87 viboes =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=B2:
> Le 01/12/12 15:17, grigor...@gmail.com <javascript:> a =C3=A9crit :
> =20
> Sorry for incoherence.
> =20
> On fixing lambdas. For example, we could allow single expression lambdas=
=20
> to be declared without curly braces. That would give us most of the=20
> benefits that let-in bindings give us.
> It will be a little bit more noisy, but much. Consider
> =20
> synchronized(mt, []() .... );
> =20
> Or another variant:
> =20
> synchronized(mt) << [] () ..... ;
> =20
> On the style. The solutions with lambdas or let-in bindings instead of=20
> pure RAII have a drawback, that there appears to be a lot more braces tha=
n=20
> in pure RAII, which results in syntactic noise.
> Imagine you need 3 or 4 RAII objects in the function. So, you create let=
=20
> binding for the first, then inside it create let binding for the second a=
nd=20
> so on...
> And now the code is much less readable.=20
>
> Take in account that we have also the possibility to lock several mutex a=
t=20
> once using make_unique_locks. Could you give an example where it is less=
=20
> readable?=20
>
> With RAII you sometimes need to put additional braces, and sometimes it=
=20
> looks ugly, but IMHO with let-bindings everywhere code would be much more=
=20
> ugly than without them.
>
> Why do you want to use let-bindings everywhere?
>
> -- Vicente
> =20
--=20
------=_Part_2033_9959901.1354375746155
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div>If it only for locks - then why bother? </div><div>For locks there's n=
o need for a language feature, something like with_lock function would be j=
ust fine.</div><div>Indeed, if we're talking about locks then you would rar=
ely need to use synchronized (or with_lock) inside synchronized.</div><div>=
</div><div>My impression was that your idea is to replace RAII w=
ith let-bindings in most of the places not only for locking. My objections =
were against that approach.</div><div><br>=D0=A1=D1=83=D0=B1=D0=BE=D1=82=D0=
=B0, 1 =D0=B3=D1=80=D1=83=D0=B4=D0=BD=D1=8F 2012 =D1=80. 17:13:13 UTC+2 =D0=
=BA=D0=BE=D1=80=D0=B8=D1=81=D1=82=D1=83=D0=B2=D0=B0=D1=87 viboes =D0=BD=D0=
=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=B2:</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rg=
b(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
=20
=20
=20
<div text=3D"#000000" bgcolor=3D"#FFFFFF">
<div>Le 01/12/12 15:17,
<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"_D=
vUzQ8b8J0J">grigor...@gmail.com</a> a =C3=A9crit :<br>
</div>
<blockquote type=3D"cite">
<div>Sorry for incoherence.</div>
<div> </div>
<div>On fixing lambdas. For example, we could allow single
expression lambdas to be declared without curly braces. That
would give us most of the benefits that let-in bindings give us.</d=
iv>
<div>It will be a little bit more noisy, but much. Consider</div>
<div> </div>
<div><font face=3D"courier new,monospace">synchronized(mt, []() ....
);</font></div>
<div> </div>
<div>Or another variant:</div>
<div> </div>
<div><font face=3D"courier new,monospace">synchronized(mt) <<
[] () ..... ;</font></div>
<div> </div>
<div><font face=3D"arial,sans-serif">On the style. The solutions
with lambdas or let-in bindings instead of pure RAII have a
drawback, that there appears to be a lot more braces than in
pure RAII, which results in syntactic noise.</font=
></div>
<div>Imagine you need 3 or 4 RAII objects in the&=
nbsp;function. So, you
create let binding for the first, then inside it create let
binding for the second and so on...</div>
<div>And now the code is much less readable. </div>
</blockquote>
Take in account that we have also the possibility to lock several
mutex at once using make_unique_locks. Could you give an example
where it is less readable?
<blockquote type=3D"cite">
<div>With RAII you sometimes need to put additional braces, and
sometimes it looks ugly, but IMHO with let-bindings
everywhere code would be much more ugly than without them.</di=
v>
</blockquote>
Why do you want to use let-bindings everywhere?<br>
<br>
-- Vicente<br>
</div>
</blockquote>
<p></p>
-- <br />
<br />
<br />
<br />
------=_Part_2033_9959901.1354375746155--
.
Author: grigorij1981@gmail.com
Date: Sat, 1 Dec 2012 07:41:39 -0800 (PST)
Raw View
------=_Part_1841_23956023.1354376499438
Content-Type: text/plain; charset=ISO-8859-1
Indeed it is not possible to use return in lambda to return from
an enclosing function, but does that justify a new language feature?
Regards,
Gregory
--
------=_Part_1841_23956023.1354376499438
Content-Type: text/html; charset=ISO-8859-1
<div>Indeed it is not possible to use return in lambda to return from an enclosing function, but does that justify a new language feature?</div><div> </div><div>Regards,</div><div>Gregory</div><div> </div>
<p></p>
-- <br />
<br />
<br />
<br />
------=_Part_1841_23956023.1354376499438--
.
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Sat, 01 Dec 2012 17:08:58 +0100
Raw View
Le 01/12/12 16:29, grigorij1981@gmail.com a =E9crit :
> If it only for locks - then why bother?
> For locks there's no need for a language feature, something like=20
> with_lock function would be just fine.
> Indeed, if we're talking about locks then you would rarely need to use=20
> synchronized (or with_lock) inside synchronized.
> My impression was that your idea is to replace RAII with let-bindings=20
> in most of the places not only for locking. My objections were against=20
> that approach.
I'm yet waiting for the example with several RAIIs. The example will be=20
useful to make comparisons.
-- Vicente
--=20
.
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Sat, 01 Dec 2012 17:14:42 +0100
Raw View
Le 01/12/12 16:41, grigorij1981@gmail.com a =E9crit :
> Indeed it is not possible to use return in lambda to return from=20
> an enclosing function, but does that justify a new language feature?
>
IMHO, yes as the new features are not complex at all.
-- Vicente
--=20
.
Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Sat, 08 Dec 2012 14:35:36 +0100
Raw View
Le 01/12/12 17:14, Vicente J. Botet Escriba a =E9crit :
> Le 01/12/12 16:41, grigorij1981@gmail.com a =E9crit :
>> Indeed it is not possible to use return in lambda to return from an=20
>> enclosing function, but does that justify a new language feature?
>>
> IMHO, yes as the new features are not complex at all.
>
> -- Vicente
>
Well it seems you were right, and there is not interest at all for these=20
two minor features.
I can live with the status-quo: looking for a name for the guard and put=20
it inside an artificial block when only one statement needed to be=20
protected.
Best,
Vicente
--=20
.