This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-10-25
Channels
- # aws (2)
- # aws-lambda (2)
- # beginners (95)
- # boot (47)
- # cider (13)
- # clara (5)
- # cljs-dev (36)
- # cljsjs (9)
- # clojure (51)
- # clojure-austin (1)
- # clojure-greece (25)
- # clojure-italy (4)
- # clojure-japan (10)
- # clojure-russia (13)
- # clojure-spec (61)
- # clojure-uk (25)
- # clojurescript (26)
- # core-matrix (5)
- # cursive (8)
- # data-science (7)
- # datomic (43)
- # dirac (2)
- # emacs (8)
- # events (3)
- # fulcro (17)
- # graphql (29)
- # jobs-rus (4)
- # lambdaisland (4)
- # lein-figwheel (3)
- # leiningen (60)
- # luminus (15)
- # lumo (8)
- # mount (3)
- # off-topic (28)
- # om (22)
- # onyx (115)
- # other-languages (6)
- # pedestal (5)
- # re-frame (41)
- # reagent (12)
- # ring-swagger (12)
- # shadow-cljs (127)
- # unrepl (27)
- # yada (5)
'giorno
@reborg se hai una sequenza di operazioni pure (lo usecase per cui in clojure usi xforms), usando normali liste in haskell hai la fusion gratis, no commitment.
Perchè i “side effect nello stream”: in haskell c’è un confine ben delineato tra operazioni pure e IO. Quindi le astrazioni in conduit
(che a questo punto è abbastanza ubiquo, quindi non molto buy-in necessario) tornano utili se vuoi fare streaming (per esempio, non leggere un file grosso in memoria tutto in una volta) e allo stesso tempo avere i vantaggi della stream fusion (ovvero il compilatore riscrive la tua sequenza di operazioni in una funzione, così non allochi liste addizionali), senza doverti scrivere a mano il codice che fa streamingIO + processing.
@richiardiandrea molto interessante quel progetto in go. Curioso che l’autore sia uno degli autori di Kafka 🙂