Fork me on GitHub
#clojure-norway
<
2023-11-21
>
augustl11:11:39

god morgen!

odinodin14:11:24

Dagens høydepunkt fra javaverden. Hvorfor gjøre det lett, når man kan gjøre det vanskelig? 😂

record Foo (String name, Optional<Instant> born){}

    var listOfFoo = List.of(
        new Foo("a", Optional.of(Instant.now())),
        new Foo("a", Optional.of(Instant.now().minus(10, DAYS))),
        new Foo("b", Optional.of(Instant.now())));

    // Oppgave: Filtrer listen av Foo slik at kun de eldste med samme name er igjen
    
    var result = listOfFoo.stream().collect(Collectors.groupingBy(Foo::name))
        .entrySet().stream()
        .collect(Collectors.toMap(Map.Entry::getKey, (Map.Entry<String, List<Foo>> e) -> e.getValue().stream().max(Comparator.comparing(v -> v.born().orElse(Instant.now()))).get()))
        .values();
Skjønner hvorfor Javautviklere ikke liker alle parantesene i Clojure 😂

🙈 1
😅 1
😂 3
cjohansen14:11:32

"Oh my god the parentheses are all the way on THAT side. That's crazy" 😂

2food15:11:09

Her er en min take på en clojure løsning 😁

(def list-of-foo
  [{:name "a" :born (Instant/now)}
   {:name "a" :born (.minus (Instant/now) 10 ChronoUnit/DAYS)}
   {:name "b" :born (Instant/now)}])

(->> list-of-foo
     (group-by :name)
     (vals)
     (map (comp first (partial sort-by :born))))

slipset15:11:52

Collectors will collect

😂 2
leifericf20:11:27

Som en som jobber med C# til daglig synes jeg det der ser ganske familiært ut 🙈

leifericf20:11:37

Jeg vet ikke hvor mange "objekt-til-objekt mappere" jeg har skrevet det siste halvåret hvor jeg bare gjør en type om til en annen som er 90%+ lik bortsett fra navnet. Eller brukt https://docs.automapper.org/en/stable/index.html. Verst av alt er når man har objekter i objekter i objekter, etc. Dypt nøsta. Hvor alle objektene bare kunne vært maps.

odinodin07:11:00

> Information is simple. The only thing you can do with information is ruin it

❤️ 2
leifericf08:11:05

"When you combine two pieces of data you get data. When you combine two machines you get trouble." —Rich HickeySource: https://youtu.be/tRoVyblAGrs?si=tbAR95gD-c1G2-DN&t=888