A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
19
Task/LZW-compression/Clojure/lzw-compression-1.clj
Normal file
19
Task/LZW-compression/Clojure/lzw-compression-1.clj
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
(defn make-dict []
|
||||
(let [vals (range 0 256)]
|
||||
(zipmap (map (comp #'list #'char) vals) vals)))
|
||||
|
||||
(defn compress [#^String text]
|
||||
(loop [t (seq text)
|
||||
r '()
|
||||
w '()
|
||||
dict (make-dict)
|
||||
s 256]
|
||||
(let [c (first t)]
|
||||
(if c
|
||||
(let [wc (cons c w)]
|
||||
(if (get dict wc)
|
||||
(recur (rest t) r wc dict s)
|
||||
(recur (rest t) (cons (get dict w) r) (list c) (assoc dict wc s) (inc s))))
|
||||
(reverse (if w (cons (get dict w) r) r))))))
|
||||
|
||||
(compress "TOBEORNOTTOBEORTOBEORNOT")
|
||||
1
Task/LZW-compression/Clojure/lzw-compression-2.clj
Normal file
1
Task/LZW-compression/Clojure/lzw-compression-2.clj
Normal file
|
|
@ -0,0 +1 @@
|
|||
(84 79 66 69 79 82 78 79 84 256 258 260 265 259 261 263)
|
||||
Loading…
Add table
Add a link
Reference in a new issue