This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-10-30
Channels
- # aleph (4)
- # announcements (5)
- # architecture (1)
- # aws (5)
- # babashka (12)
- # beginners (143)
- # chlorine-clover (4)
- # cider (16)
- # clj-kondo (44)
- # cljfx (26)
- # cljsrn (2)
- # clojure (34)
- # clojure-europe (28)
- # clojure-gamedev (1)
- # clojure-nl (3)
- # clojure-provo (2)
- # clojure-spec (6)
- # clojure-uk (17)
- # clojurescript (99)
- # code-reviews (6)
- # core-async (15)
- # cryogen (9)
- # cursive (14)
- # data-science (1)
- # datomic (16)
- # duct (1)
- # events (4)
- # exercism (1)
- # figwheel-main (3)
- # fulcro (3)
- # hugsql (7)
- # leiningen (4)
- # malli (15)
- # off-topic (13)
- # pathom (8)
- # re-frame (7)
- # reitit (35)
- # remote-jobs (1)
- # sci (10)
- # shadow-cljs (32)
- # sql (5)
- # tools-deps (102)
- # tree-sitter (3)
- # uncomplicate (7)
- # vim (40)
- # xtdb (8)
(defn ->char-strings [str]
(let [iter (doto (BreakIterator/getCharacterInstance)
(.setText str))]
(loop [start (.first iter)
res []]
(let [end (.next iter)]
(if (= end BreakIterator/DONE)
res
(recur
end
(conj res (subs str start end))))))))
Wrote a quick function that “splits” up complex unicode with Java’s ICU4J
Not sure if above is the most clojury soln. If you have better ideas lmk!Some really minor stuff, like see if you can use identical?
instead of =
in (= end BreakIterator/DONE)
, or make res
transient inside the loop, but these are all optimizations
❤️ 3