[

Size: a a a
[

AP
[
[
AP
[
revw :: String -> String
revw = reverse . fst . appendAccToString . flip foldl' ("", "") go
where
appendToAcc ch (s, a) = (s, ch : a)
appendSpace (s, a) = (' ' : s, a)
appendAccToString (s, a) = (reverse a ++ s, [])
go = flip \case
' ' -> \acc -> case acc of
(s, []) -> appendSpace acc
(s, a) -> appendSpace $ appendAccToString acc
ch -> appendToAcc ch
[
AP
> concatMap reverse . groupBy (on (&&) (not . isSpace)) $ "asd \n123 foo\tbar"
"dsa \n321 oof\trab"AP
[
AP
> rw = concatMap reverse . groupBy (on (&&) (not . isSpace))
> take 10 $ rw "asd \n123 foo\tbar" <> repeat '!'
"dsa \n321 "
Работает со стримомAP
on — и того реже :)[
AP
[
EM
[
[
EM