LINUX.ORG.RU

История изменений

Исправление Ritmik, (текущая версия) :

удалить дублирующиеся подряд символы в строке

На Clojure:

Неленивый аналог (нужен ленивый, добавить lazy-seq перед cons) хаскельского варианта Waterlaz-а:

(defn f [[x & xs :as col]]
  (when (not (empty? col))
    (cons x (drop-while #(= x %) (f xs)))))

Еще вариант:

(->> "hhhxxxxxhfgffhh"
     (partition 2 1)
     (filter (partial apply not=))
     (map first)
     (apply str))

"hxhfgf"

Исходная версия Ritmik, :

удалить дублирующиеся подряд символы в строке

На Clojure:

Неленивый аналог (нужен ленивый, добавить lazy-seq перед cons) хаскельского варианта Waterlaz-а:

(defn f [[x & xs :as col]]
  (when (not (empty? col))
    (cons x (drop-while #(= x %) (f xs)))))

Еще вариант:

(->> "hhhxxxxxhfgffhh"
     (partition 2 1)
     (filter (complement (partial apply =)))
     (map first)
     (apply str))

"hxhfgf"