This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-10-21
Channels
- # announcements (13)
- # babashka (29)
- # beginners (52)
- # calva (95)
- # cider (18)
- # clj-commons (7)
- # cljs-dev (42)
- # clojure (121)
- # clojure-australia (1)
- # clojure-dev (39)
- # clojure-europe (36)
- # clojure-france (4)
- # clojure-greece (1)
- # clojure-italy (20)
- # clojure-nl (3)
- # clojure-portugal (1)
- # clojure-uk (7)
- # clojurescript (47)
- # conjure (2)
- # cursive (9)
- # datalevin (5)
- # datascript (8)
- # datomic (68)
- # defnpodcast (2)
- # deps-new (5)
- # fulcro (18)
- # graalvm (21)
- # gratitude (9)
- # jobs (6)
- # jobs-discuss (17)
- # leiningen (3)
- # lsp (80)
- # lumo (1)
- # malli (9)
- # mount (2)
- # off-topic (16)
- # other-languages (8)
- # podcasts-discuss (19)
- # reitit (5)
- # remote-jobs (5)
- # shadow-cljs (29)
- # sql (5)
- # tools-deps (13)
- # vim (11)
- # xtdb (19)
Schema /spec /malli fanno solo check a run time, anche se adesso tools tipo clj kondo stanno diventando sempre più sofisticati e riescono a dare parecchie type inference
Quindi mah a me perlomeno non manca troppo un type system, il nil punning my ha fatto incazzare molte più volte
Ma in alcuni progetti usiamo anche la libreria cats, che ti dà varie monadi & co e non sono convinto sia una buona idea usarla in clojure
non l'ho mai visto fare, ma si potrebbe essere un opzione
ah vabbeh si ma mica ti controlla che i tipi sono giusti
e niente di magico https://github.com/clojure/core.specs.alpha/blob/master/src/main/clojure/clojure/core/specs/alpha.clj#L58
se non glieli specifichi mai
ah con fdef si ok
praticamente mai usato
Lo linko perche' neanche a me da' fastidio in clojure, mentre in altri linguaggi che lo declinano diversamente (tipo java, o c++) e' un incubo
Posso argomentare che per come e' implementato in Clojure, nil
non e' molto diverso da un Option type. nil
e' essenzialmente polimorfico e si comporta diversamente in base al contesto in cui e' usato. Poi confermo che per il fatto che e' piu' una convenzione che un meccanismo del compilatore, ci sono certe parti in Clojure dove non e' decorato di alcun significato aggiuntivo.
Clojure e' un capolavoro di tradeoffs e non e' necessariamente consistente in ogni sua parte. Questo ha consentito al linguaggio di avere un minimo di popolarita', perche' i tradeoffs sono necessari per renderlo pratico e veloce nell'uso quotidiano. Poi a volte ti imbestialisce!
sono totalmente d'accordo che per le scelte fatte nil
feels like an option type e riuscire a fare questo a partire dai null pointers lo trovo veramente segno di ottimo design
le cose nil fanno un baffo a clojure 😄 tutte le funzioni funzionano anche su nil senza problemi
