generate-mods.clj
Pinchord · pinchord.git · Tickets · Changelog
Branches > v29.0 > ffdf7f1 > files / generate-mods.clj
(def numbers {:chord "LRPKFST*"
:left-numpad {"" ""
"R" "1"}})
(def symbols {"P" "."
"RP" "/"})
{:chord "P"
:translation "."}
(def mods {"-" ""
"A" "ctrl"
"E" "shift"
"I" "super"
"U" "alt"})
(def mods {"A" "ctrl"
"E" "shift"
"I" "super"
"U" "alt"})
(defn power-set [coll]
(let [rest (power-set (rest coll))]
(concat rest
(map #(cons (first coll) %) rest))))
(defn power-set [coll]
(reduce (fn [acc x]
(into acc (map #(conj % x) acc)))
#{#{}} coll))
(power-set mods)
(defn apply-mods [x combo]
(reduce (fn [acc [_ mod]]
(str mod "(" acc ")"))
x combo))
(defn generate-all-mods [starter {:keys [chord translation]}]
(for [mods (power-set mods)]
(apply-mods translation mods)))
(generate-all-mods "ST" {:chord "SP" :translation "/"})
(comment)