Fork me on GitHub
#clojure-italy
<
2018-08-31
>
reborg07:08:40

Gday back in UKey

Andrea Imparato09:08:14

buongiorno! domanda ultra nabba

Andrea Imparato09:08:41

come faccio un "while not empty" ?

reborg09:08:46

Su che tipo di collection? perche' quello che descrivi si fa solo se hai side effects di solito

bronsa09:08:51

non lo fai

bronsa09:08:14

fai un passo indietro e dicci cosa vuoi fare

bronsa09:08:36

soltiamente in clojure/linguaggi FP quando hai una domanda del genere significa che stai ancora pensando in imperativo

Andrea Imparato09:08:41

ho una funzione che mi genera una stringa

bronsa09:08:47

e framando il problema nel modo sbagliato

Andrea Imparato09:08:51

ma a volte questa stringa è vuota per varie ragioni

Andrea Imparato10:08:06

quindi voglio invocare la funzione fino a che non mi ritorna una stringa non vuota

bronsa10:08:20

(first (drop-while empty? (repeatedly generate-my-string)))

bronsa10:08:52

se ci fai caso, e` quasi la trascrizione in codice del tuo requirement

bronsa10:08:39

(repeadetly f) == invoca la funzione in continuazione (first (drop while empty? <>)) == ritornandomi il primo valore non vuoto

reborg10:08:33

anche (some not-empty xs)

4
Andrea Imparato10:08:48

clojure è così semanticamente potente <3

nilrecurring13:08:04

Ma argh, empty? vs not-empty

nilrecurring13:08:18

Dovrebbe essere not-empty?

reborg13:08:10

(not-empty "aa") => "aa"

reborg13:08:50

convenzione fin'ora rispettata (se finisce con ? ritorna true|false e nient'altro)

nilrecurring13:08:01

Oh nice, non avevo notato

nilrecurring13:08:06

Ritiro il mio sdegno

reborg13:08:36

c'era stato un tentativo con spec di introdurre un ? fuori convenzione e c'e' stata la rivoluzione

reborg20:08:50

oh questa non la capisco molto (clojure.string/blank? false) => true

mpenet20:08:14

"Garbage in, garbage out"

reborg20:08:30

Not all garbage smell the same: (clojure.string/blank? \space) => ClassCastException