Quand j'ai commencé à regarder Scala, j'ai aimé le look for-comprehensions. Ils semblaient être un peu comme les boucles foreach auxquelles j'étais habitué depuis Java 5, mais avec des restrictions fonctionnelles et beaucoup de gentillesse syntaxique douce.Compréhensions de Scala: caractéristique vitale ou sucre syntaxique?
Mais comme je l'ai absorbé le style Scala, je trouve que chaque fois que je pouvais utiliser un pour-comprension J'utilise map
, flatMap
, filter
, reduce
et foreach
à la place. L'intention du code me semble plus claire, avec moins de surprises cachées potentielles, et elles sont généralement plus courtes. Pour autant que je sache, car les compréhensions sont toujours compilées dans ces méthodes de toute façon, alors je me demande: à quoi servent-elles réellement? Ai-je manqué une revalorisation fonctionnelle (ce ne serait pas la première fois)? Est-ce que les compréhensions font quelque chose que les autres caractéristiques ne peuvent pas faire, ou seraient au moins beaucoup plus maladroites? Est-ce qu'ils brillent sous un cas d'utilisation particulier? Est-ce vraiment juste une question de goût personnel?
Ceci est presque un double de http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield. Cette question se demandait ce que «rendement» a fait, celui-ci se demande quel est son but. Les réponses sont à peu près les mêmes. –