Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
option.map et action sur none
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  6 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Jérémy Bogatirsky  
View profile   Translate to Translated (View Original)
 More options Sep 28 2012, 7:02 am
From: Jérémy Bogatirsky <jbogatir...@gmail.com>
Date: Fri, 28 Sep 2012 13:02:17 +0200
Local: Fri, Sep 28 2012 7:02 am
Subject: option.map et action sur none
Bonjour tout le monde,

je me retrouve très souvent dans le cas suivant en utilisant les options :

val myOpt: Option[A] = ...

myOpt match {
  case Some(a) => Some(anotherThing)
  case None => {
    logger.info("...")
    None
  }

}

J'aimerais pouvoir utiliser plus souvent myOpt.map() pour éviter la
verbosité du pattern matching, mais je vois pas comment faire pour, au
sein du map, appeler mon logger dans le cas du none.
Une idée ? Ne pas appeler le logger ne fait pas partie des idées qui
seront retenues ! :-)

Jérémy


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Samuel Tardieu  
View profile   Translate to Translated (View Original)
 More options Sep 28 2012, 7:05 am
From: Samuel Tardieu <s...@rfc1149.net>
Date: Fri, 28 Sep 2012 13:04:52 +0200
Local: Fri, Sep 28 2012 7:04 am
Subject: Re: option.map et action sur none

Le 28 septembre 2012 13:02, Jérémy Bogatirsky <jbogatir...@gmail.com> a
écrit :

Tu peux utiliser orElse:

myOpt map { _ => anotherThing } orElse { logger.info("..."); None }


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jérémy Bogatirsky  
View profile   Translate to Translated (View Original)
 More options Sep 28 2012, 7:07 am
From: Jérémy Bogatirsky <jbogatir...@gmail.com>
Date: Fri, 28 Sep 2012 13:07:09 +0200
Local: Fri, Sep 28 2012 7:07 am
Subject: Re: option.map et action sur none
OK, j'avais pas tiqué que dans le getOrElse je pouvais aussi faire
plusieurs appels...
Merci pour le tuyau.

Le 28 septembre 2012 13:04, Samuel Tardieu <s...@rfc1149.net> a écrit :


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jérémy Bogatirsky  
View profile   Translate to Translated (View Original)
 More options Sep 28 2012, 7:13 am
From: Jérémy Bogatirsky <jbogatir...@gmail.com>
Date: Fri, 28 Sep 2012 13:12:59 +0200
Local: Fri, Sep 28 2012 7:12 am
Subject: Re: option.map et action sur none
Pour info, ça remonte, mais un tweet est ressorti aujourd'hui
(https://twitter.com/lambdadevfr/status/251553756787924992) pointant
là-dessus : http://beust.com/weblog/2010/07/28/why-scalas-option-and-haskells-may...
C'est ce qui m'a motivé à 'migrer' les 'if' sur des options qui
trainent dans notre code.
Certains ont des avis là-dessus ?

Le 28 septembre 2012 13:07, Jérémy Bogatirsky <jbogatir...@gmail.com> a écrit :


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jérôme Mainaud  
View profile   Translate to Translated (View Original)
 More options Sep 28 2012, 7:26 am
From: Jérôme Mainaud <jer...@mainaud.com>
Date: Fri, 28 Sep 2012 13:26:04 +0200
Local: Fri, Sep 28 2012 7:26 am
Subject: Re: option.map et action sur none

J'en pense qu'il y a toujours un moment où tu devras traiter l'absence de
valeur.
Les avantages d'Option sont :

   1. de permettre de choisir le moment de ce traitement (au début ou à la
   fin)
   2. de documenter dans le code la possibilité d'absence de valeur, et
   donc d'indiquer à l'utilisateur s'il doit ou non traiter le cas.
      - Ça n'empêche pas les mauvais développements, mais ça donne toutes
      les billes pour éviter les erreurs.
      3. De fonctionner avec les descendants de AnyVal.

--
Jérôme Mainaud
jer...@mainaud.com

Le 28 septembre 2012 13:12, Jérémy Bogatirsky <jbogatir...@gmail.com> a
écrit :


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arnaud Bailly  
View profile   Translate to Translated (View Original)
 More options Sep 28 2012, 12:01 pm
From: Arnaud Bailly <arnaud.oq...@gmail.com>
Date: Fri, 28 Sep 2012 18:01:14 +0200
Local: Fri, Sep 28 2012 12:01 pm
Subject: Re: option.map et action sur none
Le commentaire de Daniel Spiewak est très clair : utiliser Maybe n'est
intéressant que si on l'utilise vraiment, c'est à dire comme une
structure opaque manipulable uniquement à l'aide de combinateur et
composable, bref une monade pour faire pédant. Cela permet d'écrire du
code clair et surtout, du moins en Haskell, je ne suis pas sûr en
scala, polymorphique dans le type de monade utilisée : on peut ainsi
composer deux fonctions de manière abstraite en ignorant dans quel
univers  elles s'appliquent, du moment que leurs univers soient
compatibles.

Et effectivement, le pattern matching sur Option n'est pas différent
d'une vérification de null.

---
Arnaud
FoldLabs Associate


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »