This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-07-05
Channels
- # beginners (53)
- # boot (6)
- # braveandtrue (12)
- # cider (50)
- # cljs-dev (24)
- # clojure (60)
- # clojure-finland (1)
- # clojure-ireland (1)
- # clojure-italy (50)
- # clojure-kc (1)
- # clojure-nl (20)
- # clojure-norway (1)
- # clojure-portugal (1)
- # clojure-russia (2)
- # clojure-sanfrancisco (1)
- # clojure-sweden (1)
- # clojure-uk (176)
- # clojurescript (58)
- # cursive (14)
- # datomic (23)
- # emacs (4)
- # events (16)
- # fulcro (35)
- # graphql (48)
- # hyperfiddle (9)
- # jobs (5)
- # mount (4)
- # onyx (13)
- # overtone (1)
- # play-clj (2)
- # re-frame (91)
- # reagent (9)
- # reitit (9)
- # shadow-cljs (102)
- # sql (3)
- # testing (3)
- # tools-deps (3)
Ecco una dissoc-in
che maneggia il corner case. Non bella o elegante come prima, ma e' anche piu' veloce:
(defn dissoc-in [m [k & ks]]
(letfn [(remove-at [v idx]
(into (subvec v 0 idx)
(subvec v (inc idx) (count v))))]
(if ks
(assoc m k (dissoc-in (get m k) ks))
(cond
(map? m) (dissoc m k)
(vector? m) (remove-at m k)
:else m))))
pare che la copyright law sia stata rimandata al mittente per una nuova seduta in settembre...
Se passate a ClojuTRE fate i biglietti per il giorno prima che mi hanno preso un talk alla Small FP Conf 🙂 https://clojutre.org/2018/#fabferrai
e se mi dicevi che eri a Milano per l'Haskell ITA domenica potevo pure fare un salto. Canaglia. 😉
OMG chiedo perdono, è successo tutto al volo (letteralmente in due settimane) e mi sono sfuggiti un po’ di canali 😳
ma dai, scherzo. Però al prossimo incontro cercherò di esserci. (neanche sapevo esistesse la comunità italiana di programmatori Haskell, da sociopath quale sono...)
Idem, ho dovuto incontrare l’organizzatore a ZuriHac per conoscerne l’esistenza
@nilrecurring interessante! Ma tutti quei caratteri fuori ASCII? Come li metto dentro?
Yep, c’è gente che li scrive in Unicode, ma io li scrivo sempre in Ascii (poi comunque c’è dhall-format
)
Eh no, in dhall hai le funzioni e i let 🙂
@nilrecurring come funziona per garantire la terminazione? disabilita funzioni ricorsive/mutualmente ricorsive o ha termination proof?
@reborg FAQ a riguardo: https://github.com/dhall-lang/dhall-lang#design-philosophy
@reborg e` pieno di linguaggi con ricorsione/loop che pero` garantiscono la terminazione per costruzione
mi chiedevo piu' che altro se voglio imparare un altro linguaggio per configurare apps
Richiede meno effort di YAML IMHO
@bronsa yep, non c’è modo di avere funzioni mutualmente ricorsive
Paper rilevante: http://www.jucs.org/jucs_10_7/total_functional_programming/jucs_10_07_0751_0768_turner.pdf (aka ci sono solo fold)
Eh, a volte Yaml non basta, quindi ci appiccichi sopra cose tipo Jinja, e stai imparando un linguaggio più buffo
(source: il nostro YAML+Jinja setup stava diventando uno spaghetto)
vedo che i devops qui ne vanno matti... ma pensavo, usando Go, non hanno un lunguaggio di configurazione piu' serio? Che hanno in Go per configurare?
Go di per se non è un linguaggio ricchissimo, e l’industry standard è di fatto YAML
Grazie 🙂
Nota a margine: finora dhall può fare output su yaml/json/etc, ma perdi l’abilità di passare funzioni in giro. Per fare ciò dovresti fare dei binding sul linguaggio. Ci son i binding haskell, sto scrivendo quelli clojure, e c’è gente che lavora su binding Scala e Rust. Non sono sicuro ci sia un modo decente di avere dei binding in go
si parla tanto dei tweet passati di trump, ma anche questi sono invecchiati proprio bene
se non altro essendo emigrato posso permettermi i voti ideologici invece di compromettermi per un voto "pratico"
This ^
Questa elezione è stata la prima in cui ho votato chi volevo effettivamente votare
Non so se sperare di avere nuove elezioni presto o no 😄