This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-09-24
Channels
- # announcements (30)
- # asami (9)
- # babashka (37)
- # beginners (120)
- # calva (26)
- # cider (3)
- # clara (9)
- # clj-commons (7)
- # clj-kondo (17)
- # cljsrn (2)
- # clojure (32)
- # clojure-europe (56)
- # clojure-nl (1)
- # clojure-norway (13)
- # clojure-uk (4)
- # clojurescript (34)
- # conjure (1)
- # copenhagen-clojurians (8)
- # core-async (21)
- # cursive (2)
- # datahike (2)
- # datascript (5)
- # events (4)
- # fulcro (32)
- # graalvm (10)
- # heroku (3)
- # introduce-yourself (1)
- # jobs (2)
- # lsp (3)
- # luminus (1)
- # malli (8)
- # meander (15)
- # minecraft (1)
- # nrepl (2)
- # off-topic (57)
- # pathom (2)
- # polylith (35)
- # reagent (6)
- # reitit (8)
- # releases (1)
- # rewrite-clj (7)
- # shadow-cljs (21)
- # timbre (4)
- # tools-build (1)
- # tools-deps (33)
- # vrac (8)
I’m starting to look at meander rewrite
fn as a “reduce via pattern matching”, do you think this a good/valid way to think about it?
"reduce via pattern matching" - do you mean some form of optimization?
fwiw, I'm using meander to generate SQL queries and perform some optimizations on them . in general it works very well.
probably the point, at least as I understand it, is that rewrite + cata
can be simplified as reduce
, where you laboriously build up the output data using pattern matching
Oh, yes. I completely misunderstood wilker's comment
@U06MDAPTP the more I use Meander more I get amazed by it, its such a different level of thinking, I love it ❤️, I’m getting more curious about the underlying idea, can you tell me what inspired you to do it? is there another language in a library doing something similar? or you just had some eureka moment to get to it?
@U066U8JQJ I should probably jot this down somewhere because I’ve been asked about this a few times, but several things influenced/inspired me toward the project and it’s difficult to pin down a single inspiration. Pattern matching/substitution; regular expression; the perpetual labor of having to read programs to understand what they doing; the numerous asymmetries between constructing and deconstructing data in virtually all mainstream programming languages; the fact data as represented by literal notation requires virtually no “reasoning” and the assumption that the closer code can be to data — in the literal data sense — the easier it should be to “reason” about; the fact semantically equivalent data can be constructed infinitely many ways with functions but finitely many ways as with literal notation; it’s a big list.
In the past couple years, I’ve spent much more time reflecting on my sensitivity to situations connected to writing software. When we’re reading code we have to hold this mental model of what something “looks like” in our minds. I have poor executive function and often have to rely on writing things down to keep track of something that I’m reading. Other people might have a better executive function than myself but, generally speaking, it’s not that much better.