This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-09-20
Channels
- # 100-days-of-code (2)
- # aleph (53)
- # architecture (2)
- # aws (3)
- # beginners (230)
- # boot (15)
- # calva (3)
- # cider (19)
- # cljs-dev (1)
- # clojure (139)
- # clojure-conj (3)
- # clojure-italy (47)
- # clojure-nl (19)
- # clojure-spec (26)
- # clojure-uk (98)
- # clojurescript (152)
- # clojutre (4)
- # core-async (22)
- # cursive (5)
- # datomic (48)
- # emacs (11)
- # events (1)
- # figwheel-main (219)
- # fulcro (15)
- # instaparse (3)
- # jobs (4)
- # jobs-rus (1)
- # leiningen (30)
- # luminus (8)
- # off-topic (67)
- # onyx (5)
- # pedestal (16)
- # re-frame (1)
- # reagent (4)
- # reitit (31)
- # ring (8)
- # ring-swagger (3)
- # shadow-cljs (115)
- # specter (4)
- # videos (1)
- # vim (20)
- # yada (15)
buondì
@andrea.crotti personalmente trovo remove
una soluzione migliore. Per chi legge il codice (compreso il me di qualche mese dopo), è più immediato capire cosa succede con remove
che con una regexp da decifrare.
La regexp da decifrare c'è comunque a quanto ho capito
Se la scrivi già negata c'è solo quella altrimenti hai anche il remove
sì, ma remove
segnala immediatamente che stai per rimuovere "qualcosa" da un sequence. Mi sembra più rapido a colpo d'occhio, ecco. 🙂
Può essere si, anche se dipende dalla regexp per me
Rimuovi comunque qualcosa con filter, e se la regexp negativa matcha molto meno di quella positiva secondo me andrebbe usata quella
Qual è la regexp @andrea.imparato?
ah certo @andrea.crotti ma diciamo che ci sono troppo cose da negare che quelle da tenere, se ha senso quello che dico :)
si piu' o meno, se fai qualche esempio magari e' piu' facile aiutare
fai conto che è una serie di regex per pulire un file di una chat di Whatsapp che uso per fare il training al mio Markov chain bot
mi è più facile dire "rimuovi tutto quello che è un timestamp" che "tieni questo se è una parola, oppure un URL etc..."
si in quel caso ha senso
@andrea.imparato dai un'occhiata a Instaparse piuttosto di usare delle regexp hardcoded (https://github.com/Engelberg/instaparse)
che bomba!
si può usare anche con xml?
@andrea.imparato tecnicamente, essendo EBNF puoi usare qualsiasi grammatica (es. https://www.liquid-technologies.com/XML/EBNF1.1.aspx)
che potenza! mind blown 💥
che cazzo sto facendo della mia vita con php 😄
(Volendo c'è anche per PHP https://github.com/qntm/loco, EBNF è uno standard piuttosto antico)
@andrea.imparato la riflessione su PHP e' comunque valida, penso la stessa cosa io con Python
(pensando al passato almeno, adesso ho la fortuna di essere pagato per usare Clojure)
Ho fatto la stessa riflessione anche io quando ho deciso di mollare python per clojure in ambito lavorativo anni fa
È indubbiamente complicato e incerto all’inizio, ma fortunatamente Clojure non ha una curva di apprendimento lunga, e il linguaggio è molto focalizzato su cosa è “production ready” e cosa no
E.g. deployare python è tutt’oggi un dolore incommensurabile
Con Docker è diventato abbastanza semplice (se tralasciamo i problemi di versione e di gestione delle dipendenze)
Abbiamo un paio di progetti python qui al lavoro, e ogni volta che ne spawna uno nuovo (tipicamente un progetto esistente che dobbiamo dockerizzare) è sempre un deliio di dipendenze e pip freeze
, uwsgi, etc etc
Per confronto: deployare roba haskell è letteralmente lanciare un binario (statico se vuoi), come go
Esattamente, usare Python richiede un sacco di disciplina nella gestione degli ambienti, salvo poi trovarsi i colleghi che hanno solo ambiente root di conda dove ci buttano di tutto senza mai fare aggiornamenti 😑
Ma è anche possibile che sia solo invidia dato che dovrò usare anche Python per I prossimi anni temo 😂
Benvenuto @hi706! 👋
@hi706 non che io sappia. Ci sono un paio di Clojuristi (e.g. @edne), un meetup Haskell itinerante (l’ultima volta è stato a Milano a luglio), e dovrebbe esserci anche un meetup Scala ma non so se sia ancora attivo o meno
qualcuno di voi ha consigli su come imparare a ragionare in modo più funzionale nella risoluzione di problemi tipo quelli di hackerrank?
In che linguaggio? (si, il linguaggio aiuta a pensare in modo diverso)
Se stai usando clojure dovresti essere abbastanza ok, dovresti provare a evitare atom
e loop
all’inizio
Tutto normale 🙂 Il trick sta nel passare da “questa funzione fa $cosa sulla mia struttura dati” a “questa funzione mi ritorna una struttura dati con la modifica che voglio”
eh ma quando devi fare operazioni tipo "implementa il calcolo della traccia di una matrice meno la traccia della diagonale opposta" non capisco bene come operare
finchè uso reduce/map che consideri tutti i valori è facile, ma quando devo astrarre loop non riesco a pensare a soluzioni
puoi fare un po' di esercizi su http://www.4clojure.com/ (o simili)
per fare un po' di pratica
poi ti viene naturale, devi solo pensare a ogni algoritmo come una sequenza di trasformazioni