RosettaCodeData/Task/Run-length-encoding/Emacs-Lisp/run-length-encoding-2.l

8 lines
286 B
Common Lisp

(require 'seq)
(defun run-length-encode (str)
(let ((grouped (mapcar #'cdr (seq-group-by #'identity (string-to-list str)))))
(apply #'concat (mapcar (lambda (items)
(format "%d%c" (length items) (car items)))
grouped))))