This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-08-29
Channels
- # announcements (5)
- # beginners (25)
- # calva (53)
- # clj-kondo (9)
- # clojure (25)
- # clojure-europe (14)
- # clojure-nl (1)
- # clojure-norway (21)
- # clojure-uk (1)
- # conjure (2)
- # data-science (1)
- # datalevin (4)
- # datascript (6)
- # deps-new (5)
- # emacs (5)
- # etaoin (6)
- # figwheel-main (1)
- # fulcro (46)
- # gratitude (3)
- # hyperfiddle (8)
- # introduce-yourself (13)
- # lsp (13)
- # nextjournal (5)
- # off-topic (2)
- # pathom (4)
- # polylith (11)
- # re-frame (16)
- # releases (4)
- # scittle (67)
- # shadow-cljs (38)
- # slack-help (4)
- # specter (13)
- # sql (29)
- # squint (21)
- # test-check (3)
- # vim (13)
- # xtdb (15)
En vakker dag for å transformere data med funksjoner. Håper jeg, I alle fall. Kan hende det blir litt http-stæsj også.
ønskes: update
i alle språk. Mangler i Kotlin, overraskende (eller kanskje ikke) hvor kjekk den funksjonen er
Hadde vært interessant i Java f.eks om Object
inneholdt update
/`update-in` (vanskeligere å type)
Typescript har en greie på “inline arrays” eller hva det nå heter, så da buuuuuurde det kaaaaanskje gå an å type update-in (siden den vet compile-time om alt som er i lista, men kanskje liste-typer er problemet, man trenger tupler)
Update er vel lett i alle språk. Jeg tror det blir update-in som blir vannskelig, spesielt hvis man må støtte alt. (Hvis man bare trenger 3-5 nivåer, kan man gjøre det med et hav av overloads)
C#:
public static class Clojure {
public static Dictionary<K1, IReadOnlyDictionary<K2, V2>> UpdateIn<K1, K2, V2>(
IReadOnlyDictionary<K1, IReadOnlyDictionary<K2, V2>> d,
K1 k1, K2 k2,
Func<V2, V2> f) {
throw new NotImplementedException();
}
public static IReadOnlyDictionary<K1, IReadOnlyList<V2>> UpdateIn<K1, V2>(
IReadOnlyDictionary<K1, IReadOnlyList<V2>> d,
K1 k1, int k2,
Func<V2, V2> f) {
throw new NotImplementedException();
}
public static IReadOnlyDictionary<K1, IReadOnlyDictionary<K2, IReadOnlyDictionary<K3, V3>>> UpdateIn<K1, K2, K3, V3>(
IReadOnlyDictionary<K1, IReadOnlyDictionary<K2, IReadOnlyDictionary<K3, V3>>> d,
K1 k1, K2 k2, K3 k3,
Func<V3, V3> f) {
throw new NotImplementedException();
}
// osv for alle kombinasjoner av dictionary og lister til nivå ~5, eller det man trenger
}
@augustl Du har sikkert fått med deg denne, men i tilfelle ikke: https://java-to-kotlin.dev/chapter_samples/chapter07-calculations-to-actions.html
BTW, hvis du skulle trenge en gjennomleser til av boka di (du har sikkert mange allerede), så gi meg en ping.
Hey, har lurka en liten stund men enda ikke sagt noe 👋 Sist jeg skrev Clojure var mens jeg gikk på universitetet og progga hele tiden, Siden det har jeg vært innom mange typede språk og gjort noen dykk i ting som scala (på jobb) og purescript/haskell (ikke på jobb). Men nå driver jeg å fikler litt med et sideprosjekt og dro frem Clojure igjen, det er så smooth :star-struck: