Naposledy aktivní 1779874002

travisshears's Avatar travisshears revidoval tento gist 1779874002. Přejít na revizi

1 file changed, 19 insertions

short-name.clj(vytvořil soubor)

@@ -0,0 +1,19 @@
1 + (defn short-name-seq
2 + "Lazy infinite seq of short names. like a,b,c..aa,bb,cc..zzzzz"
3 + []
4 + (let [letters (map str "abcdefghijklmnopqrstuvwxyz")]
5 + (mapcat (fn [length]
6 + (map (fn [letter] (apply str (repeat length letter))) letters))
7 + (range 1 Long/MAX_VALUE))))
8 +
9 +
10 + ; unit test
11 +
12 + (deftest test-short-name-seq
13 + (let [short-names (vec (take 1000 (short-name-seq)))]
14 + (is (= (get short-names 0) "a"))
15 + (is (= (get short-names 1) "b"))
16 + (is (= (get short-names 25) "z"))
17 + (is (= (get short-names 26) "aa"))
18 + (is (= (get short-names 345) "hhhhhhhhhhhhhh"))
19 + (is (= (get short-names 733) "fffffffffffffffffffffffffffff"))))
Novější Starší