Fork me on GitHub
#clojure-italy
<
2021-10-21
>
andrea.crotti07:10:51

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

andrea.crotti07:10:51

Quindi mah a me perlomeno non manca troppo un type system, il nil punning my ha fatto incazzare molte più volte

andrea.crotti07:10:02

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

mpenet08:10:50

le macros sono check at compile time con spec

mpenet08:10:50

non e un gran che, ma almeno ...

andrea.crotti09:10:54

non l'ho mai visto fare, ma si potrebbe essere un opzione

mpenet09:10:54

l'ho fa con let/defn/ns per esempio

andrea.crotti09:10:38

ah vabbeh si ma mica ti controlla che i tipi sono giusti

andrea.crotti09:10:43

se non glieli specifichi mai

andrea.crotti09:10:55

ah con fdef si ok

andrea.crotti09:10:04

praticamente mai usato

mpenet09:10:17

io si, per un alternativa a try, tipo try+

Pagoda 5B11:10:54

cos'è il nil punning, per capire?

Carlo13:10:19

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

reborg15:10:09

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.

reborg16:10:24

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!

Carlo16:10:03

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

Andrea Imparato12:10:19

le cose nil fanno un baffo a clojure 😄 tutte le funzioni funzionano anche su nil senza problemi

thanks2 1