Anonymous user
Run-length encoding: Difference between revisions
no edit summary
(added MMIX) |
No edit summary |
||
Line 368:
=={{header|Common Lisp}}==
<lang lisp>(defun
(labels ((rec (word len pos chr count acc)
((char= chr (char word pos)) (rec word len (1+ pos) chr (1+ count) acc))
(cdr (nreverse (rec word (length word) 0 #\null 1 nil)))))
else▼
(defun
(if (null alist)
(destructuring-bind (chr . count) (car alist)
(format nil "~A~A" (make-string count :initial-element chr) (decode (cdr alist))))))
▲ (first elem)))
▲(run-length-encode "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW")
▲(run-length-decode '((#\W 12) (#\B 1) (#\W 12) (#\B 3) (#\W 24) (#\B 1)))</lang>
=={{header|D}}==
|