This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-10-05
Channels
- # announcements (14)
- # aws (7)
- # babashka (28)
- # beginners (16)
- # calva (2)
- # cider (1)
- # clj-commons (8)
- # clj-kondo (29)
- # clojure (213)
- # clojure-europe (39)
- # clojure-losangeles (2)
- # clojure-norway (9)
- # clojure-spec (2)
- # clojurescript (11)
- # community-development (1)
- # conjure (2)
- # cursive (6)
- # datalevin (2)
- # datomic (8)
- # emacs (29)
- # events (1)
- # fulcro (22)
- # graalvm (14)
- # improve-getting-started (1)
- # jobs (1)
- # lambdaisland (5)
- # leiningen (4)
- # lsp (7)
- # malli (13)
- # meander (11)
- # membrane (13)
- # off-topic (23)
- # polylith (9)
- # re-frame (4)
- # reagent (7)
- # reitit (6)
- # releases (2)
- # sql (58)
- # testing (8)
- # tools-deps (18)
- # web-security (2)
Just FYI zeta
examples are a bit more verbose at the moment but less "noisy" syntax will be available/is easily achieved through notation extensions. These allow you to extend the parser/reader with rewrite rules.
The parser doesn't know anything about ?x
syntax, for example. It only knows about Clojure's primitive data types and how to resolve operators.
Using the example above. I can also create sum
and combine it with avg
to compute both at the same time.
With the logical operators like m/each
(conjunction) and/or m/some
(`disjunction`) it's possible to constrain what is summed/averaged etc.
The sum
and avg
definition in the examples above don't constrain the ?incoming
type since this is just a demonstration. But it will be possible to say
(m/each (m.num/any) ?n)
and constraint to numbers. Right now, only ()
is working.Oh. Off topic, I should mention that I'm planning to release meander.zeta
as just meander
when it is ready.
I have spent a while thinking about what I want to achieve with the project and distill those bits into a library that can be extensible, support async/sync, and friendly to interpretation/compilation. Also, I wanted the left and right sides of rules to support the same set of operators. That has been hard and there is still work ahead but it is true today that left and right both support projection (`let`), conjunction, disjunction, and negation which makes possible many things.