Re: [vote] Opinions about conditional built-in names?
Raymond Auge <[email protected]> Tue, 2 Jun 2015 07:47:16 -0400
| Newsgroups | gmane.comp.web.freemarker.devel |
|---|---|
| Message-ID | <CAMm6HcAe2hwk9LaP2-sz2w9k=WJ1eXONUK0y0PbZ-xu1K-0pnA@mail.gmail.com> |
--===============0375557603415112234== Content-Type: multipart/alternative; boundary=001a11353fe40df3180517878104 --001a11353fe40df3180517878104 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I lean to "then". But before deciding maybe a quick look over these: http://en.wikipedia.org/wiki/%3F: - Ray On Tue, Jun 2, 2015 at 3:01 AM, Daniel Dekany <[email protected]> wrote: > OK, so that's like a vote for "then". Anyone else has an opinion? Or > even just a vote on the name you prefer? > > someBoolean?then(whenTrue, whenFalse)someBoolean?then(whenTrue, whenFalse= ) > or > someBoolean?choose(whenTrue, whenFalse) > or > something else? > > -- > Thanks, > Daniel Dekany > > > Monday, June 1, 2015, 9:41:49 PM, Woonsan Ko wrote: > > > On 6/1/15 3:26 PM, Daniel Dekany wrote: > >> Sunday, May 31, 2015, 7:50:20 PM, Woonsan Ko wrote: > >> > >>> I personally prefer having the default value option inside the > >>> parenthesis, without having to depend on the default value after '!'. > >>> So, I like the idea the odd number of parameters for a default value. > >>> > >>> Regarding the original question about 'switch' and 'choose', I like t= he > >>> 'switch' very much, but I'm not sure if 'choose' is a good name for > >>> ternary operator. In XSL, 'choose' means just one choice of the > >>> 'switch'. > >> > >> Actually, in XSLT "choose" stands for "switch" (and "when" stands for > >> "case"). But that just proves how confusing this word is... :) > > > > Oh you're right. Long time passed after I wrote XSL files last. :-D > > > >> > >>> 'choose' sounds like related to one of the 'multiple' choices > >>> to me. > >> > >> Well, I'm also unhappy with "choose", I just couldn't find better > >> yet... What do you think about "then". Apart from the lack of "else" > >> in it, it reads quite fluently: loggedIn?then(user.name, "unknown"). > > > > Yeah, "then" sounds better to me than anything else. > > > >> > >>> Another option to consider might be 'iif' [1], which seems a bit > clearer > >>> to me than 'either' and others. > >>> > >>> someBoolean?iif(whenTrue, whenFalse) > >>> > >>> Just my two cents, > >> > >> I have played that idea back then, but I'm afraid very few knows what > >> does "iif" stands for. Also loggedIn?iif(user.name, "unknown") can be > >> easily misread like: we are logged in IF user.name is "unknown". > > > > Agreed. Not sound fluent. > > > > Kind regards, > > > > Woonsan > > > >> > >>> Woonsan > >>> > >>> [1] http://en.wikipedia.org/wiki/IIf > >>> > >>> On 5/30/15 6:02 AM, Daniel Dekany wrote: > >>>> And regarding the semantics of ?switch... as it sands now, if there'= s > >>>> no matching choice, that will be an exception that says: > >>>> > >>>> The value before ?switch(case1, value1, case2, value2, ...) didn't > >>>> match any of the case parameters, and there was no default value > >>>> parameter (an additional last parameter) either. > >>>> > >>>> So, if you have an odd number of parameters, then the last one is li= ke > >>>> the default branch of switch in Java. > >>>> > >>>> I have also considered just returning null if there's no match, and > >>>> then one can write ?switch(...)!theDefault, but then if someone > >>>> doesn't give a default, the error messages will just say that > >>>> ?switch(...) has evaluated to null/missing, which many users won't > >>>> understand why's happening. Also it has the same problems as > >>>> ?then(this)!that had. > >>>> > >>> > >>> > >> > > > > > > > > -------------------------------------------------------------------------= ----- > _______________________________________________ > FreeMarker-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/freemarker-devel > --=20 *Raymond Aug=C3=A9* <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> (@Liferay) Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> (@OSGiAlliance= ) --001a11353fe40df3180517878104 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>I lean to "then".<br><br></div><div>But bef= ore deciding maybe a quick look over these: <a href=3D"http://en.wikipedia.= org/wiki/%3F">http://en.wikipedia.org/wiki/%3F</a>:<br></div><div><br></div= >- Ray<br></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">O= n Tue, Jun 2, 2015 at 3:01 AM, Daniel Dekany <span dir=3D"ltr"><<a href= =3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>&g= t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0= .8ex;border-left:1px #ccc solid;padding-left:1ex">OK, so that's like a= vote for "then". Anyone else has an opinion? Or<br> even just a vote on the name you prefer?<br> <br> someBoolean?then(whenTrue, whenFalse)someBoolean?then(whenTrue, whenFalse)<= br> or<br> someBoolean?choose(whenTrue, whenFalse)<br> or<br> something else?<br> <span class=3D"HOEnZb"><font color=3D"#888888"><br> --<br> Thanks,<br> =C2=A0Daniel Dekany<br> </font></span><div class=3D"HOEnZb"><div class=3D"h5"><br> <br> Monday, June 1, 2015, 9:41:49 PM, Woonsan Ko wrote:<br> <br> > On 6/1/15 3:26 PM, Daniel Dekany wrote:<br> >> Sunday, May 31, 2015, 7:50:20 PM, Woonsan Ko wrote:<br> >><br> >>> I personally prefer having the default value option inside the= <br> >>> parenthesis, without having to depend on the default value aft= er '!'.<br> >>> So, I like the idea the odd number of parameters for a default= value.<br> >>><br> >>> Regarding the original question about 'switch' and = 9;choose', I like the<br> >>> 'switch' very much, but I'm not sure if 'choos= e' is a good name for<br> >>> ternary operator. In XSL, 'choose' means just one choi= ce of the<br> >>> 'switch'.<br> >><br> >> Actually, in XSLT "choose" stands for "switch"= (and "when" stands for<br> >> "case"). But that just proves how confusing this word is= ... :)<br> ><br> > Oh you're right. Long time passed after I wrote XSL files last. :-= D<br> ><br> >><br> >>> 'choose' sounds like related to one of the 'multip= le' choices<br> >>> to me.<br> >><br> >> Well, I'm also unhappy with "choose", I just couldn&= #39;t find better<br> >> yet... What do you think about "then". Apart from the la= ck of "else"<br> >> in it, it reads quite fluently: loggedIn?then(<a href=3D"http://us= er.name" target=3D"_blank">user.name</a>, "unknown").<br> ><br> > Yeah, "then" sounds better to me than anything else.<br> ><br> >><br> >>> Another option to consider might be 'iif' [1], which s= eems a bit clearer<br> >>> to me than 'either' and others.<br> >>><br> >>>=C2=A0 =C2=A0 =C2=A0someBoolean?iif(whenTrue, whenFalse)<br> >>><br> >>> Just my two cents,<br> >><br> >> I have played that idea back then, but I'm afraid very few kno= ws what<br> >> does "iif" stands for. Also loggedIn?iif(<a href=3D"http= ://user.name" target=3D"_blank">user.name</a>, "unknown") can be<= br> >> easily misread like: we are logged in IF <a href=3D"http://user.na= me" target=3D"_blank">user.name</a> is "unknown".<br> ><br> > Agreed. Not sound fluent.<br> ><br> > Kind regards,<br> ><br> > Woonsan<br> ><br> >><br> >>> Woonsan<br> >>><br> >>> [1] <a href=3D"http://en.wikipedia.org/wiki/IIf" target=3D"_bl= ank">http://en.wikipedia.org/wiki/IIf</a><br> >>><br> >>> On 5/30/15 6:02 AM, Daniel Dekany wrote:<br> >>>> And regarding the semantics of ?switch... as it sands now,= if there's<br> >>>> no matching choice, that will be an exception that says:<b= r> >>>><br> >>>>=C2=A0 =C2=A0The value before ?switch(case1, value1, case2,= value2, ...) didn't<br> >>>>=C2=A0 =C2=A0match any of the case parameters, and there wa= s no default value<br> >>>>=C2=A0 =C2=A0parameter (an additional last parameter) eithe= r.<br> >>>><br> >>>> So, if you have an odd number of parameters, then the last= one is like<br> >>>> the default branch of switch in Java.<br> >>>><br> >>>> I have also considered just returning null if there's = no match, and<br> >>>> then one can write ?switch(...)!theDefault, but then if so= meone<br> >>>> doesn't give a default, the error messages will just s= ay that<br> >>>> ?switch(...) has evaluated to null/missing, which many use= rs won't<br> >>>> understand why's happening. Also it has the same probl= ems as<br> >>>> ?then(this)!that had.<br> >>>><br> >>><br> >>><br> >><br> ><br> ><br> <br> <br> </div></div><div class=3D"HOEnZb"><div class=3D"h5">-----------------------= -------------------------------------------------------<br> _______________________________________________<br> FreeMarker-devel mailing list<br> <a href=3D"mailto:[email protected]">FreeMarker-devel@= lists.sourceforge.net</a><br> <a href=3D"https://lists.sourceforge.net/lists/listinfo/freemarker-devel" t= arget=3D"_blank">https://lists.sourceforge.net/lists/listinfo/freemarker-de= vel</a><br> </div></div></blockquote></div><br><br clear=3D"all"><br>-- <br><div class= =3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><span style=3D"= font-family:Helvetica"><a href=3D"http://www.liferay.com/web/raymond.auge/p= rofile" target=3D"_blank"><font color=3D"#999900"><b>Raymond Aug=C3=A9</b><= /font></a>=C2=A0(@rotty3000)</span><div><span style=3D"font-family:Helvetic= a">Senior Software Architect=C2=A0</span><a href=3D"http://www.liferay.com"= style=3D"font-size:12.8000001907349px;font-family:Helvetica" target=3D"_bl= ank"><font color=3D"#999900"><b>Liferay, Inc.</b></font></a><span style=3D"= font-size:12.8000001907349px;font-family:Helvetica">=C2=A0(@Liferay)</span>= </div>Board Member & EEG Co-Chair, <a href=3D"http://osgi.org" target= =3D"_blank">OSGi Alliance</a> (@OSGiAlliance)</div></div></div></div> </div> --001a11353fe40df3180517878104-- --===============0375557603415112234== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ --===============0375557603415112234== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ FreeMarker-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freemarker-devel --===============0375557603415112234==--