This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-08-29
Channels
- # announcements (2)
- # beginners (17)
- # calva (3)
- # cljdoc (3)
- # cljsrn (7)
- # clojure (99)
- # clojure-europe (6)
- # clojurescript (18)
- # clojureverse-ops (2)
- # cryogen (1)
- # cursive (11)
- # datomic (2)
- # duct (6)
- # figwheel-main (2)
- # fulcro (3)
- # graalvm (2)
- # honeysql (1)
- # introduce-yourself (5)
- # leiningen (4)
- # meander (11)
- # membrane (14)
- # practicalli (1)
- # re-frame (4)
- # reagent (5)
- # rum (1)
- # shadow-cljs (17)
- # spacemacs (13)
- # tools-deps (6)
Unrelated to my other project, I'm evaluating pattern matching in an open world context based on something like best-fit.
Meander is a macro in current design, is there a version where pattern matching is compiled to a value that's run through an interpreter of some kind? My thinking is to avoid eval
after adding a new pattern, sorting and compiling.
Unrelated to meander but here's my attempt to create macro-free pattern matching library https://github.com/xapix-io/matchete
@U0BBFDED7 that's great, thanks. I'd missed that!
@U04V4KLKC I considered matchete but I'm unclear on the performance characteristics. Meander has a lot of optimizations in reducing redundant checks.
Oh, that's a shame @U0BBFDED7. I'd hoped it'd be possible to do analysis on the forms to determine redundant paths... The machinery for those optimizations is all there, so perhaps that's possible in a future update.
The performance of the interpreter can be improved. It probably will never get as close to the performance of the compiled code but it can get closer. At the moment, I don’t think the interpreter does any optimizations. Since the interpreter is built e.g. it “compiles” a function, it is possible to eliminate many redundancies.