This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-10-27
Channels
- # announcements (13)
- # asami (12)
- # babashka (65)
- # beginners (62)
- # calva (14)
- # cider (8)
- # clara (11)
- # clj-kondo (16)
- # clojure (86)
- # clojure-europe (12)
- # clojure-gamedev (4)
- # clojure-nl (2)
- # clojure-sg (4)
- # clojure-uk (5)
- # clojurescript (206)
- # clojureverse-ops (11)
- # community-development (7)
- # conjure (12)
- # core-async (2)
- # core-logic (13)
- # cursive (49)
- # datalevin (1)
- # datomic (30)
- # deps-new (3)
- # duct (8)
- # events (5)
- # fulcro (10)
- # helix (5)
- # jobs (1)
- # klipse (5)
- # lsp (178)
- # luminus (1)
- # malli (8)
- # meander (3)
- # membrane (13)
- # missionary (1)
- # nrepl (5)
- # other-languages (4)
- # pedestal (4)
- # reitit (3)
- # releases (1)
- # reveal (27)
- # shadow-cljs (89)
- # tools-build (6)
- # tools-deps (11)
- # vim (2)
- # xtdb (64)
Hi ? anybody here ? ^^
I’ve tried the core.logic
a week ago and curious are there any projects that use it in production?
We use it for an in memory SPARQL/datalog-like database… https://github.com/Swirrl/matcha I wrote it 3 years ago as a quick hack to do an in memory datalog like database. I couldn’t use datascript as we needed something schemaless… these days I’d probably look at using asami instead.
what do think about it performance tho? Or what would be the best case to use it? I tried it to do a two-sum problems and once the input arrays have around ~100 elems then it goes insanely slow.
Have you looked at using tabling?
It’s supported in core.logic It’s a fancy version of memoization, that can improve the performance of some core.logic algorithms a lot; and also help ensure some algorithms terminate. It’s probably best documented in Will Byrds thesis: https://raw.githubusercontent.com/webyrd/dissertation-single-spaced/master/thesis.pdf
(It has a section on it)
I’m also trying to make a series to benchmark its speed with the lazy-seq and others implementation: I made a small note here : https://ngockhuat.me/logic
ohhh, did you happen to benchmark it if we do it in the traditional way?
context: we construct joins between all of the filters on a dashboard to create a single query that links all of the valid values for the dropdowns. From the first one to each other one. Since these can include duplicates, we pass all of these joins into this dedupe function so that we have only one join that satisfies all tables we need to hit
This is such a cool graph problem. It must feel good to write that piece of code.