Fork me on GitHub
#clojure-italy
<
2018-07-05
>
reborg07:07:56

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))))

parrot 4
4
👏 4
reborg11:07:45

pare che la copyright law sia stata rimandata al mittente per una nuova seduta in settembre...

🎉 8
nilrecurring11:07:52

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

manuel12:07:58

grande! 👍

manuel12:07:28

e se mi dicevi che eri a Milano per l'Haskell ITA domenica potevo pure fare un salto. Canaglia. 😉

nilrecurring12:07:02

OMG chiedo perdono, è successo tutto al volo (letteralmente in due settimane) e mi sono sfuggiti un po’ di canali 😳

manuel12:07:25

ma dai, scherzo. Però al prossimo incontro cercherò di esserci. (neanche sapevo esistesse la comunità italiana di programmatori Haskell, da sociopath quale sono...)

nilrecurring13:07:52

Idem, ho dovuto incontrare l’organizzatore a ZuriHac per conoscerne l’esistenza

manuel13:07:23

a-ha! Beh dai, ora ho aggiunto il feed RSS così da beccarmi gli aggiornamenti

manuel13:07:28

ah grazie, mi metto pure lì

reborg12:07:44

@nilrecurring interessante! Ma tutti quei caratteri fuori ASCII? Come li metto dentro?

reborg12:07:04

ah ho visto hanno anche il corrispettivo ascii

nilrecurring12:07:48

Yep, c’è gente che li scrive in Unicode, ma io li scrivo sempre in Ascii (poi comunque c’è dhall-format)

nilrecurring12:07:07

Spoiler: sto scrivendo il compilatore dhall-clojure

‼️ 8
reborg12:07:53

forse piu dhall-edn?

nilrecurring12:07:11

Eh no, in dhall hai le funzioni e i let 🙂

bronsa12:07:48

pensavo parlaste di APL :)

reborg12:07:04

sara' anche non turing complete, ma se ci metti dentro let/for e company...

bronsa12:07:32

@nilrecurring come funziona per garantire la terminazione? disabilita funzioni ricorsive/mutualmente ricorsive o ha termination proof?

bronsa12:07:15

@reborg e` pieno di linguaggi con ricorsione/loop che pero` garantiscono la terminazione per costruzione

bronsa12:07:20

il nostro imandra e` uno di quelli

reborg12:07:09

mi chiedevo piu' che altro se voglio imparare un altro linguaggio per configurare apps

nilrecurring12:07:18

Richiede meno effort di YAML IMHO

nilrecurring13:07:01

@bronsa yep, non c’è modo di avere funzioni mutualmente ricorsive

bronsa14:07:16

ah si` conosco

manuel04:07:24

gran bel paper questo, grazie per il link

❤️ 4
reborg13:07:35

agree, se Yaml e' l'unica cosa possibile

nilrecurring13:07:56

Eh, a volte Yaml non basta, quindi ci appiccichi sopra cose tipo Jinja, e stai imparando un linguaggio più buffo

nilrecurring13:07:21

(source: il nostro YAML+Jinja setup stava diventando uno spaghetto)

reborg13:07:12

immagino non capisco la pena perche' non uso abbastanza yaml!

reborg13:07:27

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?

nilrecurring13:07:56

Go di per se non è un linguaggio ricchissimo, e l’industry standard è di fatto YAML

reborg13:07:48

Comunque, lavoro interessante. Provo a menzionarglielo.

nilrecurring14:07:08

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

bronsa15:07:16

si parla tanto dei tweet passati di trump, ma anche questi sono invecchiati proprio bene

skuro15:07:37

un giorno rideremo di tutto questo (o magari l'emigrazione aiuta a coltivare speranza)

gon15:07:11

gia', speriamo... che non piangeremo...

bronsa15:07:28

se non altro essendo emigrato posso permettermi i voti ideologici invece di compromettermi per un voto "pratico"

nilrecurring15:07:53

Questa elezione è stata la prima in cui ho votato chi volevo effettivamente votare

bronsa15:07:53

io no perche` chi volevo votare non me l'han messo in lista esteri

bronsa15:07:07

e son troppo giovane di 6 mesi per votare al senato quest anno

nilrecurring15:07:29

Non so se sperare di avere nuove elezioni presto o no 😄

bronsa15:07:01

dagli un altro po' di tempo per implodere

bronsa15:07:05

(spero)

✔️ 4