如何在Clojure中创建字符串索引的映射?

rub*_*ect 0 clojure

我想创建一个映射,其中键是字符串中的字符,每个键的值是字符串中给定字符的位置列表.

lee*_*ski 6

更短的变种:

(defn process [^String s]
  (group-by #(.charAt s %) (range (count s))))


user> (process "asdasdasd")
;;=> {\a [0 3 6], \s [1 4 7], \d [2 5 8]}
Run Code Online (Sandbox Code Playgroud)

注意这里的索引是排序的