Size: a a a

2021 December 11

[

[BRM]White Rabbit in Haskell Start
вот крч
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Лучше бы кто сделал на unfold и break
источник

[

[BRM]White Rabbit in Haskell Start
мне не нравится, что у меня строка тут форсится - сначала исходная, а потом выходная
источник

[

[BRM]White Rabbit in Haskell Start
это двойной выстрел в перф, так сказать
источник

AP

Aleksei (astynax) Pi... in Haskell Start
И давайте стараться сюда код скидывать, а не скриншоты. Чтобы новички могли его скопировать и поковырять
источник

[

[BRM]White Rabbit in Haskell Start
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

Aleksei (astynax) Pi... in Haskell Start
👍
источник

[

[BRM]White Rabbit in Haskell Start
зато у меня тут получилась исконно верная ассоциативность у (++) - хоть какой-то плюс
источник

AP

Aleksei (astynax) Pi... in Haskell Start
> concatMap reverse . groupBy (on (&&) (not . isSpace)) $ "asd \n123   foo\tbar"
"dsa \n321   oof\trab"
источник

AP

Aleksei (astynax) Pi... in Haskell Start
А вы рекурсии пишете и свёртки
источник

[

[BRM]White Rabbit in Haskell Start
ну да, груп бай как-то редко пригождается, что забываешь, что он есть
источник

AP

Aleksei (astynax) Pi... in Haskell Start
> rw = concatMap reverse . groupBy (on (&&) (not . isSpace))
> take 10 $ rw "asd \n123   foo\tbar" <> repeat '!'
"dsa \n321  "

Работает со стримом
источник

AP

Aleksei (astynax) Pi... in Haskell Start
> груп бай как-то редко пригождается

on —  и того реже :)
источник

[

[BRM]White Rabbit in Haskell Start
ну да кстати
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Но разве не в том и смысл, чтобы знать инструмент, который используешь? И тренировать навык, ставя перед собой задачу не писать рекурсию и вообще минимум функций объявлять смостоятельно. Так и познакомитесь со стандартной библиотекой. А Hoogle поможет
источник

[

[BRM]White Rabbit in Haskell Start
я его вроде 2 раза видел
один раз в каком-то примере вроде учебном, второй в сорсах вот тут
https://hackage.haskell.org/package/data-aviary-0.4.0/docs/Data-Aviary-Birds.html
источник

EM

Evgeny Malafeev in Haskell Start
Ну так не интересно. Я сам хотел решить )))
источник

[

[BRM]White Rabbit in Haskell Start
ну так есть разные решения
источник

[

[BRM]White Rabbit in Haskell Start
моё не самое лучшее
источник

EM

Evgeny Malafeev in Haskell Start
Оно мне показалось каким-то сложным. Я думал есть проще вариант.
источник