LINUX.ORG.RU

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

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

обещанный вариант на байтстрингах с фьюзингом и прочими радостями:

unescape xs = toLazyByteString (s <> (foldl' (<>) mempty t'))
     where (s,t) = span (/=0x7D) xs
           t' = map (\x -> word8 (head x .|. 0x7D) <> bytestring (tail x)) (split 0x7D)

можно было написать сильно проще, но не правильно, всё равно никто проверять не будет.

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

обещанный вариант на байтстрингах с фьюзингом и прочими радостями:

unescape xs = toLazyByteString (s <> (foldl' (<>) mempty t'))
     where (s,t) = span (/=0x7D) xs
           t' = map (\x -> word8 (head x) <> bytestring (tail x)) (split 0x7D)

можно было написать сильно проще, но не правильно, всё равно никто проверять не будет.