This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-11-05
Channels
- # 100-days-of-code (1)
- # announcements (7)
- # beginners (84)
- # boot (1)
- # cider (22)
- # cljdoc (14)
- # cljs-dev (45)
- # cljsrn (6)
- # clojure (65)
- # clojure-conj (7)
- # clojure-finland (1)
- # clojure-italy (7)
- # clojure-nl (2)
- # clojure-serbia (1)
- # clojure-uk (111)
- # clojurescript (58)
- # cursive (8)
- # datomic (68)
- # duct (1)
- # emacs (33)
- # figwheel (3)
- # figwheel-main (9)
- # fulcro (33)
- # graphql (1)
- # juxt (30)
- # kaocha (4)
- # off-topic (22)
- # pathom (47)
- # pedestal (4)
- # planck (6)
- # re-frame (1)
- # reagent (1)
- # reitit (13)
- # shadow-cljs (49)
- # spacemacs (7)
- # sql (6)
- # tools-deps (60)
Neat stuff from @ztellman: https://github.com/lacuna/bifurcan
@henrik Not sure what to make of this. None of the other data-structures had value semantics correct? Like only Clojure considers two data structure equal if their values and structure are equal? Or does bifurcan offer this as well?
@didibus Yeah, in the comparison, Clojure is called out for “custom equality semantics”. I’m not sure if Bifurcan supports this or not. Since Clojure is called out, I’m going to go ahead and guess “not”.
Ya, Clojure equality semantics are kind of a game changer for me. And for cases where I don't need it, I also rarely need to stick with persistence, and can just use standard mutable java ones.
It's also most likely that if you implemented a custom clojure like equality for bifurcan, it would devolve in performance similar to the Clojure ones. Anyhow, maybe one day I'll have a really contrive use case and will be happy it exists
It would be nice if Bifurcan provided benchmarks for when using with Clojure's equality semantics.
bifurcan approach sometimes differs more than with just equality, so I guess the answer would be it depends
There are some operations where equality is not a factor though, right? Or does the introduction of custom equality fundamentally change all performance characteristics?
Concatenation and appending left or right seem like operations that should be free of equality checks. Not sure about splitting.