Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (ns untitled2.core)
  2.  
  3. (defn gen_seq
  4.   [prefix, alphabet]
  5.   (->> alphabet
  6.        (filter (fn [x] (not= x (str (last prefix)))))
  7.        (map (fn [x] (concat prefix x)))))
  8.  
  9. (defn gen_seq_for_prefixes
  10.   [prefixes, alphabet]
  11.   (reduce
  12.     (fn [memo, prefix] (concat memo (gen_seq prefix alphabet)))
  13.     []
  14.     prefixes))
  15.  
  16. (defn -main
  17.   []
  18.   (let [input ["a" "b" "c"] N 2]
  19.     (println
  20.       (map
  21.         (fn [seq] (apply str seq))
  22.         (reduce
  23.           (fn [memo, _] (gen_seq_for_prefixes memo input))
  24.           input
  25.           (take N (range)))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement