This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-05-07
Channels
- # announcements (16)
- # asami (15)
- # babashka (12)
- # beginners (38)
- # calva (32)
- # cider (1)
- # clj-commons (9)
- # clj-otel (4)
- # clojure (57)
- # clojure-europe (43)
- # clojure-korea (1)
- # clojure-nl (1)
- # clojure-norway (13)
- # clojure-uk (4)
- # clojuredesign-podcast (9)
- # clojurescript (10)
- # cursive (5)
- # datahike (9)
- # deps-new (2)
- # events (1)
- # fulcro (8)
- # hyperfiddle (7)
- # kaocha (1)
- # lsp (2)
- # malli (3)
- # nrepl (2)
- # off-topic (19)
- # releases (3)
- # ring (10)
- # shadow-cljs (4)
- # sql (14)
- # xtdb (57)
- # yamlscript (2)
Jeg syns Prolog var innmari gøy på universitetet, men hadde ikke forventet å få noe glede av det i arbeidslivet, men joda! Datomic valgte seg Datalog som spørrespråk, med en tydelig inspirasjon av Prolog og dens logiske slutninger. Jeg skriver litt om Datalog i dagens bloggpost på Parenteser-bloggen. Det er attpåtil en sjokkerende tvist på slutten. 😅 https://parenteser.mattilsynet.io/datalog/
Nydelig tekst! Liker veldig godt eksemplene og motivasjonen for hvorfor. Og fint grep med “putt spørringen i en def
, så kan folk kalle den som de vil selv. Jeg ville helt sikkert laget funksjoner!
Litt late to the party lissom, men: Da jeg begynte i Ardoq hadde vi et dao-lag:
(ns user-da)
(defn find-by-id [db id]
(m/query-one coll db {:_id id}))
(defn find-by-name [db name]
(m/query db coll {:name name}))
;; etc
over tid skjønte jeg jo, akkurat som @U07FCNURX at det er jo spørringene som er gullet, ikke eksekveringen av dem.
Derfor har vi nå funksjoner som:
(defn by-id [id] {:_id id})
(defn by-name [name {:name name})
etc.
Og disse kan da også trivielt kombineres:
(defn by-id-and-name [id name] (merge (by-id id) (by-name name)))
Dog ser det litt anderledes ut idag fordi vi spør mot psql og ikke mongo.Jeg hadde egentlig tenkt å skrive om mer avansert Datalog, men oppdaget (igjen) at det jo var mer enn spennende nok å skrive om det grunnleggende. 🙂
God morgon!