Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #7989
| From | Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: new Java lambda syntax |
| Date | 2011-09-13 23:25 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <j4oi0m$f83$1@dont-email.me> (permalink) |
| References | (7 earlier) <j4jbgt$i60$1@dont-email.me> <j4m6o0$t69$1@dont-email.me> <j4meun$99r$1@dont-email.me> <j4o9rt$i0g$1@dont-email.me> <j4oe35$h0u$1@dont-email.me> |
On 13/09/2011 22:22, Joshua Cranmer allegedly wrote:
> On 9/13/2011 2:04 PM, Daniele Futtorovic wrote:
>> Okay, so you can have a lambda returning a value? Steve Simpson's
>> statement:
>>
>>> There's no (...) long jumps (break, continue, return, throw)
>>
>> seemed to contradict that, as did Tom's about the "Gafterist nonsense"
>> (<3), seeing how Gafter et al.'s proposal contained return values, IIRC.
>
> What this is referring to is that lambdas do not have non-local control
> flow (the so-called "long jump" -- think about C's setjmp/longjmp
> feature [1]). Lambdas are effectively "mini-functions", so I could have
> a lambda that looked like this:
>
> (int[] x, int y) => {
> for (int i = 0; i < x.length; i++)
> if (x[i] == y) return i;
> return -1;
> };
>
> which would effectively be a method that looked like:
> int searchList(int[] x, int y) {
> for (int i = 0; i < x.length; i++)
> if (x[i] == y) return i;
> return -1;
> }
>
> In other words, what was not accepted was the thing that pissed me off
> about some of the proposals, namely that any block of statements should
> do the exact same thing if you wrapped it with ((){/*insert stmt*/})() [2].
>
> So this would return true:
> boolean foo() {
> ((){ return true; })();
> return false;
> }
>
> Obviously, if you want to have more complex logic in the lambda for
> returning multiple values other than what you can do in a simple
> expression, you'd need some sort of syntax. The compromise then being
> discussed would make this method return false:
> boolean foo() {
> ((){ return true })();
> return false;
> }
>
> ....
>
> It was at that point that I personally hated non-local control flow in
> closures, er, lambdas. [3]
>
> [1] Actually, don't. It breaks so many things.
> [2] This is, supposedly, Tennent's Correspondence Principle. I say
> supposedly since a google search only reveals results that are
> specifically brought up in reference to the closures debate in JS and Java.
> [3] Actually, doing some more research for this posting, it struck me
> that the primary rationale for non-local control flow comes from the
> heritage of lambdas. Most of the time, lambdas are used in reference to
> functional programming paradigms, and in the purer functional languages,
> control flow is not done via explicit constructs but rather via specific
> function calls. So it's a list.forEach( { body of loop }) as opposed to
> a for (Element e : list) { body of loop }; in such languages, non-local
> control flow is more important. However, given that Java is more
> imperatively structured than functionally structured, non-local control
> flow is by means no natural, nor is it necessary to implement, so I
> would still stand by my claim that non-local control flow is not a
> feature that should be implemented in Java's version of lambdas. For
> example, C++11 appears to omit it in their version of lambdas...
>
Lovely. I welcome that decision, then, and humbly thank you and Tom for
your elaborations.
--
DF.
Determinism trumps correctness.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
new Java lambda syntax markspace <-@.> - 2011-09-08 13:19 -0700
Re: new Java lambda syntax Roedy Green <see_website@mindprod.com.invalid> - 2011-09-08 15:18 -0700
Re: new Java lambda syntax Arne Vajhøj <arne@vajhoej.dk> - 2011-09-08 18:27 -0400
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-08 15:40 -0700
Re: new Java lambda syntax Arne Vajhøj <arne@vajhoej.dk> - 2011-09-08 19:27 -0400
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-08 16:29 -0700
Re: new Java lambda syntax Arne Vajhøj <arne@vajhoej.dk> - 2011-09-08 19:48 -0400
Re: new Java lambda syntax Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-09-08 17:56 -0700
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-08 22:23 -0700
Re: new Java lambda syntax "Nasser M. Abbasi" <nma@12000.org> - 2011-09-08 16:41 -0700
Re: new Java lambda syntax Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-09-08 20:50 -0500
Re: new Java lambda syntax bugbear <bugbear@trim_papermule.co.uk_trim> - 2011-09-09 09:33 +0100
Re: new Java lambda syntax Tom Anderson <twic@urchin.earth.li> - 2011-09-10 14:48 +0100
Re: new Java lambda syntax Steven Simpson <ss@domain.invalid> - 2011-09-10 16:17 +0100
Re: new Java lambda syntax Tom Anderson <twic@urchin.earth.li> - 2011-09-11 13:06 +0100
Re: new Java lambda syntax Steven Simpson <ss@domain.invalid> - 2011-09-11 17:18 +0100
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-11 11:08 -0700
Re: new Java lambda syntax Steven Simpson <ss@domain.invalid> - 2011-09-11 20:14 +0100
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-11 14:08 -0700
Re: new Java lambda syntax Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-09-11 17:07 -0500
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-11 16:18 -0700
Re: new Java lambda syntax Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-09-13 02:00 +0200
Re: new Java lambda syntax Arne Vajhøj <arne@vajhoej.dk> - 2011-09-12 20:59 -0400
Re: new Java lambda syntax Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-09-12 21:24 -0500
Re: new Java lambda syntax Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-09-13 21:04 +0200
Re: new Java lambda syntax Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-09-13 15:22 -0500
Re: new Java lambda syntax Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-09-13 23:25 +0200
Re: new Java lambda syntax Tom Anderson <twic@urchin.earth.li> - 2011-09-13 21:29 +0100
Re: new Java lambda syntax Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-09-13 23:26 +0200
Re: new Java lambda syntax supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-13 20:25 -0400
Re: new Java lambda syntax Tom Anderson <twic@urchin.earth.li> - 2011-09-15 21:58 +0100
Re: new Java lambda syntax Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-09-13 21:36 -0500
Re: new Java lambda syntax supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-13 22:49 -0400
Re: new Java lambda syntax "supercalifragilisticexpialadiamaticonormalizeringelimatisticantations" <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-14 02:49 -0400
Re: new Java lambda syntax supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-14 03:01 -0400
Re: new Java lambda syntax "winkleMeister" <..00@00.00.00.1> - 2011-09-14 09:59 +0000
Re: new Java lambda syntax supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-15 10:16 -0400
Re: new Java lambda syntax supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-14 06:40 -0400
Re: new Java lambda syntax supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-09-15 10:16 -0400
Re: new Java lambda syntax lightworker <etts@0n.org.null> - 2011-09-16 01:57 +0000
Re: new Java lambda syntax thoolen <th00len@th0lenbot.thorium> - 2011-09-15 22:41 -0400
Re: new Java lambda syntax Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-09-14 06:29 -0300
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-14 07:40 -0700
Re: new Java lambda syntax Lew <lewbloch@gmail.com> - 2011-09-14 08:01 -0700
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-14 14:50 -0700
Re: new Java lambda syntax Lew <lewbloch@gmail.com> - 2011-09-14 18:02 -0700
Re: new Java lambda syntax BGB <cr88192@hotmail.com> - 2011-09-14 21:08 -0700
csiph-web