Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > comp.lang.java.programmer > #5312
| From | Arved Sandstrom <asandstrom3minus1@eastlink.ca> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Call by Result |
| References | (5 earlier) <8CtIp.4644$PA5.4578@newsfe01.iad> <slrniv9qag.phi.avl@gamma.logic.tuwien.ac.at> <4df5290c$0$49183$e4fe514c@news.xs4all.nl> <slrnivefbp.phi.avl@gamma.logic.tuwien.ac.at> <4df77a95$0$49041$e4fe514c@news.xs4all.nl> |
| Message-ID | <_XPJp.2060$g12.487@newsfe20.iad> (permalink) |
| Organization | Public Usenet Newsgroup Access |
| Date | 2011-06-14 17:58 -0300 |
On 11-06-14 12:13 PM, Silvio wrote:
> On 06/14/2011 12:52 PM, Andreas Leitgeb wrote:
>> Silvio<silvio@moc.com> wrote:
>>> Well, here is an example in Scala:
>>> [...]
>>> def getString(s : String) : Option[String] =
>>> {
>>> if (s.reverse == s) Some(s.toLowerCase)
>>> else None
>>> }
>>> [...]
>>> val t = getString(s)
>>> [...]
>>> t match
>>> {
>>> case Some(r) => println("Success, return value is: " + r)
>>> case None => println("Failure")
>>> }
>>
>> Ah, thanks. Yep, I've seen this concept once when playing with
>> OCaml (which mentions Haskell as one of its roots). Never got
>> warm with it, though.
>>
>> In the end, it isn't all that more concise than C++/Java...
>> It's a bit like C's unions with some byte ahead to tell which
>> of the variants is the current one, and bunch of logical operations
>> that is often trivially converted into a couple of (possibly nested)
>> "if-else"s. I'm not saying it's bad, just it didn't impress me all
>> that much, so far.
>>
>
[ SNIP ]
> Only when used in combination with other monads does Option shine.
>
> Pattern matching is very powerful because it unifies matching on types
> and values AND extracting sub-values from matched values. But it would
> deserve better examples than the one I provided.
>
> One would have to consider a larger piece of code to appreciate it as a
> whole instead of looking at isolated language features.
+1.
Either larger chunks of code, and/or chaining of operations. With Option
or Maybe, you don't have to check every intermediate result. With
idiomatic Haskell or Scala you'd probably not see a whole bunch of
pattern matching for Maybe or Option at all.
It's way more concise than Java, and another advantage still remains
that we're not looking for a special value (null).
> Cheers,
>
> Silvio
AHS
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-09 23:03 -0700
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-10 07:33 +0000
Re: Call by Result Nigel Wade <nmw-news@ion.le.ac.uk> - 2011-06-10 10:03 +0100
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-10 09:47 +0000
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-10 08:23 -0300
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-10 13:12 +0000
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-10 15:44 -0300
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-12 16:29 +0000
Re: Call by Result Silvio <silvio@moc.com> - 2011-06-12 23:00 +0200
Re: Call by Result Silvio <silvio@moc.com> - 2011-06-12 23:06 +0200
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-14 10:52 +0000
Re: Call by Result Silvio <silvio@moc.com> - 2011-06-14 17:13 +0200
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-14 17:58 -0300
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-14 21:18 +0000
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-14 20:14 -0300
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-15 07:13 -0300
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-15 12:50 +0000
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-15 18:52 -0300
Re: Call by Result lewbloch <lewbloch@gmail.com> - 2011-06-15 07:06 -0700
Re: Call by Result Michael Wojcik <mwojcik@newsguy.com> - 2011-06-15 21:33 -0400
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-16 11:03 +0000
Re: Call by Result "H.J. Sander Bruggink" <sander.bruggink@uni-due.de> - 2011-06-16 13:09 +0200
Re: Call by Result Lewis Bloch <lewisbloch@google.com> - 2011-06-16 06:59 -0700
Re: Call by Result "John B. Matthews" <nospam@nospam.invalid> - 2011-06-16 23:14 -0400
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:31 -0700
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-12 14:27 -0300
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-10 07:20 -0700
Re: Call by Result Patricia Shanahan <pats@acm.org> - 2011-06-10 09:30 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:44 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:26 -0700
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-11 15:07 +0000
Re: Call by Result Abu Yahya <abu_yahya@invalid.com> - 2011-06-11 23:00 +0530
Re: Call by Result Martin Gregorie <martin@address-in-sig.invalid> - 2011-06-11 19:36 +0000
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-11 21:06 +0000
Re: Call by Result Martin Gregorie <martin@address-in-sig.invalid> - 2011-06-12 10:53 +0000
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-12 09:28 -0700
Re: Call by Result Martin Gregorie <martin@address-in-sig.invalid> - 2011-06-12 17:48 +0000
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-12 13:19 -0700
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-11 15:39 -0700
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-12 11:07 +0000
Re: Call by Result markspace <-@.> - 2011-06-12 07:02 -0700
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-12 09:39 -0700
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-14 10:29 +0000
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-14 09:14 -0700
Re: Call by Result markspace <-@.> - 2011-06-14 09:21 -0700
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-14 09:53 -0700
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-14 09:57 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-12 21:44 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-12 21:40 -0700
Re: Call by Result Patricia Shanahan <pats@acm.org> - 2011-06-10 01:30 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:45 -0700
Re: Call by Result Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-10 07:50 -0400
Re: Call by Result Silvio <silvio@moc.com> - 2011-06-10 15:35 +0200
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-10 13:56 +0000
Re: Call by Result Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-06-10 07:22 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:56 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:57 -0700
Re: Call by Result Patricia Shanahan <pats@acm.org> - 2011-06-10 13:50 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-12 21:53 -0700
Re: Call by Result Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-06-13 07:20 -0300
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-13 08:08 -0700
Re: Call by Result Wojtek <nowhere@a.com> - 2011-06-11 16:35 -0700
Re: Call by Result Martin Gregorie <martin@address-in-sig.invalid> - 2011-06-12 11:05 +0000
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-12 21:56 -0700
Re: Call by Result Wojtek <nowhere@a.com> - 2011-06-14 00:40 -0700
Re: Call by Result Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-06-11 21:18 +0000
Re: Call by Result markspace <-@.> - 2011-06-10 08:43 -0700
Re: Call by Result RedGrittyBrick <RedGrittyBrick@spamweary.invalid> - 2011-06-10 17:01 +0100
Re: Call by Result Martin Gregorie <martin@address-in-sig.invalid> - 2011-06-10 16:55 +0000
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:59 -0700
Re: Call by Result Wojtek <nowhere@a.com> - 2011-06-11 16:24 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-12 21:59 -0700
Re: Call by Result Paul Cager <paul.cager@googlemail.com> - 2011-06-13 07:53 -0700
Re: Call by Result Wojtek <nowhere@a.com> - 2011-06-14 00:43 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-10 11:55 -0700
Re: Call by Result Steven Simpson <ss@domain.invalid> - 2011-06-11 09:09 +0100
Re: Call by Result Cholo Lennon <chololennon@hotmail.com> - 2011-06-16 11:30 -0300
Re: Call by Result Paul Cager <paul.cager@googlemail.com> - 2011-06-17 02:38 -0700
Re: Call by Result Gene Wirchenko <genew@ocis.net> - 2011-06-17 12:06 -0700
Re: Call by Result lewbloch <lewbloch@gmail.com> - 2011-06-17 06:40 -0700
Re: Call by Result Cholo Lennon <chololennon@hotmail.com> - 2011-06-17 11:43 -0300
csiph-web