Nella comunità di Scala - c'è un evidente fascino per la funzione FlatMap .
Ora capisco che FlatMap è significativo perché è usato per la parte vincolante di una Monade. (e che la comunità Clojure non si è ancora immessa nelle Monadi, con alcuni wonderful eccezioni ).
Ora nella comunità Clojure - non esiste un linguaggio culturale corrispondente, ad esempio "MapCat that S ***".
La mia teoria sulla differenza tra le due comunità e la ragione di questa differenza è che le primitive della concorrenza in Clojure si prestano a risolvere i problemi su una singola macchina, in una singola istanza. (Cioè, Clojure è bravo in concorrenza). Mentre nel mondo della Scala, con l'ascesa del modello di attore, Scala è un po 'più focalizzato sulla risoluzione di problemi multi-macchina. Questo focus sui problemi multi-macchina ha una maggiore attenzione a rompere i problemi nelle loro parti, e una maggiore attenzione su ciò che può essere scomposto e Scala. (es. Monoids) (Ora mi rendo conto che c'è un STM in Scala, e che i modelli Actor, Avout e Cascalog sono eccezioni meravigliose a questo - sto facendo una generalizzazione)
La mia domanda è, perché Scala fascination with flatmap ?
(Non sto cercando di iniziare un flamewar - penso che entrambe le comunità abbiano tratto beneficio dall'esistenza di entrambi - sto cercando di capire un comportamento culturale).