Morn!
Morn!
Morn!
Mrn?
Morn!
Morn!
Mornings
morn
Morn sann!
Mornings!
Morn-TIL: clojure.core/comparator. Lar deg styre sorteringen til feks sorted-set og sorted-map uten å kødde med Java-interop!
https://clojurians.slack.com/archives/CBJ5CGE0G/p1756045067660679
nice!
Også interessant at den kaller pred to ganger:
(defn comparator
"Returns an implementation of java.util.Comparator based upon pred."
{:added "1.0"
:static true}
[pred]
(fn [x y]
(cond (pred x y) -1 (pred y x) 1 :else 0)))Sannelig. Såvidt jeg ser, er det nødvendig?
Ja, jeg skjønte ikke hvorfor med en gang
Forventningen er vel at pred ikke kan svare på "hvem er først av x eller y", bare "kommer x før y", så for å implementere https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#compare-T-T- trenger du å spørre pred to ganger
Interessant nok , alle funksjoner implementerer Comparator, og kan bruke som comparators i sånne greier.
Dobbelt interessant, du kan sortere en liste med tall ved å bruke -, så lenge tallene dine ikke er for store.
Parenteser-innlegg på en mandag(!). Det tror jeg ikke har skjedd før. Jeg skriver om hvordan jeg først prøvde å sette meg inn i Clojure-kodebasen vi har på jobb (Matnyttig), hvordan det feilet, og hvordan jeg ville angrepet samme problem i dag. Ha en fortsatt god mandag! https://parenteser.mattilsynet.io/informasjon-for-handen/
Bookmarked! Denne kan være fin å ta frem hvis jeg i fremtiden skal introdusere Java/Kotlin-kollegaer til en Clojure-kodebase 🙂
veldig interessant ja! Dette er jo liksom killer argumentet for å ha statiske typer
I etterkant er det gøy at jeg gikk i nettopp denne fella — selv om jeg hadde skrevet en del Clojure før jeg møtte denne kodebasen!
fordelen med statiske typer i ny kodebase: du kan relativt hjernedødt navigere deg igjennom koden for å se hva som skjer ulempen med statiske typer i ny kodebase: du kan relativt hjernedødt navigere deg igjennom koden for å se hva som skjer
Det:point_up:setter veldig fint fingeren på hvorfor jeg liker å utforske i REPL. Jeg kan eveluere ekte kode. Og når funksjonen jeg kaller er ren, kan jeg se nøyaktig hva den gjør på returverdien.
hvor lurt er det å gjøre endringer på kode hvor du ikke har datamodellen i hodet? 🤔 Er det ikke det som er poenget med å være utvikler, altså å ha datamodellen i hodet? Ref denne posten om hva LLM-er mangler https://zed.dev/blog/why-llms-cant-build-software
Morn 🙂