На этом шаге мы перечислим эти функции.
Перечислим несколько таких функций.
1. Функция, возвращающая по строке символов, содержащей переносы строки (\n), список подстрок, разделённых символом "Перенос строки":
lines:: String -> [String] lines str
> lines "abc\ndef" > lines "\n\n\n" > lines "\na\nb\nc\nd\n" ["abc","def"] ["","",""] ["","a","b","c","d"]
2. Функция, возвращающая по строке символов, содержащей символы "Пробел", список слов, разделённых этими символами:
words:: String -> [String] words str
> words "abc def" > words " " > words " a b c d " ["abc","def"] [] ["a","b","c","d"]
3. Функция, возвращающая по списку подстрок единую строку, вставляя символ "Перенос строки" между исходными подстроками:
unlines:: [String] -> String unlines lstStr
> unlines ["abc","def"] > unlines ["","",""] "abc\ndef\n" "\n\n\n" > unlines ["","a","b","c","d"] "\na\nb\nc\nd\n"
4. Функция, возвращающая по списку слов единую строку, вставляя символ "Пробел" между исходными словами:
unwords:: [String] -> String unwords lstWrd
> unwords ["abc","def"] > unwords [""] "abc def" "" > unwords ["",""] > unwords ["","a","b","c","d"] " " " a b c d"
На следующем шаге мы поговорим более подробно об элементарных селекторах.