Size: a a a

2021 December 10

EM

Evgeny Malafeev in Haskell Start
Понял. Спасибо. Помозгую ещё.
источник

И

Иван in Haskell Start
если у тебя есть рекурсивный вызов, то накопленный результат можно просто передавать аргументом в функцию
источник

zt

zsh top in Haskell Start
unwords . map reverse . words
источник

A

Aragaer in Haskell Start
пробелы не сохранит
источник

zt

zsh top in Haskell Start
Да?
источник

O

Ortofax in Haskell Start
да
источник
2021 December 11

A

Aragaer in Haskell Start
Prelude> (unwords . map reverse . words) "hello  world"
"olleh dlrow"
источник

A

Aragaer in Haskell Start
было два, стало один
источник

O

Ortofax in Haskell Start
"олег дароу"
источник

И

Иван in Haskell Start
ты имеешь в виду что типо такого матчинга?
rev (' ':xs) = undefined
rev (x:xs) = undefined
источник

A

Aragaer in Haskell Start
ага
источник

A

Aragaer in Haskell Start
и с рекурсией
источник

A

Aragaer in Haskell Start
собссно три строчки получилось
источник

И

Иван in Haskell Start
ну и с каким то аккумулятором видимо еще :)
источник

A

Aragaer in Haskell Start
даже двумя 8)
источник

ЗП

Зигохистоморфный Пре... in Haskell Start
можно линзами)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Вообще можно обойтить base'овыми Data.List.break и Data.List.takeWhile
источник

AP

Aleksei (astynax) Pi... in Haskell Start
λ> :m +Data.List
λ> :m +Data.Char
λ> rw [] = []; rw xs = let (w, ws) = break isSpace xs in reverse w <> ks ws; ks [] = []; ks xs = let (s, ss) = break (not . isSpace) xs in s <> rw ss
λ> rw "asd   fgh   jkl"
"dsa   hgf   lkj"
источник

AP

Aleksei (astynax) Pi... in Haskell Start
break хватило
источник

AP

Aleksei (astynax) Pi... in Haskell Start
rw [] = []
rw xs =
 let (w, ws) = break isSpace xs
 in reverse w <> ks ws

ks [] = []
ks xs =
 let (s, ss) = break (not . isSpace) xs
 in s <> rw ss

(rw == "reverseWords", "ks" == "keepSpaces", просто я в репле экономил символы)

Машина состояний :)
источник