Fork me on GitHub
#clojure-norway
<
2021-12-10
>
augustl11:12:56

i matematikken på barneskolen driver de med noe rare greier, har dere sett det? De sier "en pluss fire", ikke "pluss en fire"? #dadjoke

😂 2
augustl11:12:38

TIL: for . Visste jo at den fantes. Men har egentlig ignorert den helt. Den er jo veldig fin å bruke i stedet for (pun not intended) map i mye GUI-kode f.eks? Greit å ikke trenge å lage seg en funksjon når man skal iterere gjennom ting og lage data for GUI-rendring

1
hkjels13:12:21

Samme distinksjonen jeg gjør i reagent / re-frame. Til enkel datamassasje bruker jeg map og i view-kode bruker jeg for. Føles ryddigere når man trenger :key for at react skal være fornøyd

leifericf14:12:50

Er det ikke også idiomatisk å bruke f.eks. doseq (når man har side-effects) eller loop + recur istedenfor for i mange tilfeller? Når man bare vil traversere en sekvens uten “hukommelse.” map + reduce kan kanskje også være et alternativ. Typ doseq hvis man ikke trenger å “huske” noe i loopen til neste iterasjon, ellers loop + recur i kombinasjon med first og rest — eller map + reduce med en anonym funksjon — for å ræve over en sekvens, når man trenger å gjøre kalkulasjoner (f.eks. summeringer).

augustl14:12:10

jo, bruker doseq til sideeffekt-greier (som stort sett er når jeg leker, ikke i kode som sjekkes inn)

1
Fredrik14:12:42

Nyttig å bruke for mer som et verktøy for å bygge opp lister, enn for å itere over noe. Den er mer som i Python enn C/Java, om du vil. I motsetning til doseq/dorun/doall/run! er for lazy, så ofte vet du hvilken av de du trenger.

isak16:12:43

Ja jeg foretrekker`for` , spesielt i UI, fordi da kommer collection først, ikke sist som med map (uten`->>`), og da er koden mye lettere å lese. Eneste tingen som er litt dumt med for er at jeg tror ikke det er en lett måte å legge til index. Med map kan man lett bytte til map-indexed hvis man trenger det (for react key).

Ivar Refsdal10:12:40

@U08JKUHA9 Kva med (map-indexed vector ...) inne i for-en?

(let [inp [:a :b :c]]
    (for [[idx item] (map-indexed vector inp)]
      {:index idx
       :item item}))
=> ({:index 0, :item :a} {:index 1, :item :b} {:index 2, :item :c})

augustl14:12:31

index bør vel uansett ikke brukes som key :thinking_face: Ihvertfall sånn jeg forstår react + keys. Da risikerer man vel at den ikke får med seg om man resorter lista?

isak15:12:25

@UGJE0MM0W Jo den er grei, men litt verbose. Da bruker jeg vanlighvis (->> inp (map-indexed ... i stedet.

isak15:12:44

Det er mange tilfeller hvor man ikke har en stable ID, og elementene ikke endrer rekkefølge, og da kan index brukes som key.

👍 1