52700.fb2
it :: Char
Для обозначения перехода на новую строку используется специальный символ \n. Если строка слишком
длинная и не помещается на одной строке, то её можно перенести так:
str = ”My long long long long \
\long long string”
Перенос осуществляется с помощью комбинации следующих друг за другом обратных слэшей.
Нам понадобится функция конкатенации списков (++), она определена в Prelude, с её помощью мы будем
объединять строки:
Prelude> :t (++)
(++) :: [a] -> [a] -> [a]
Prelude> ”Hello” ++ [’ ’] ++ ”World”
”Hello World”
it :: [Char]
Пример: Отображение дат и времени
Приведём, пример в котором отображаемое значение не совпадает с видом значения в коде. Мы отобра-
зим значения из мира календаря. Для начала давайте сохраним определения в отдельном модуле:
module Calendar where
import Prelude (Int, Char, String, Show(.. ), (++))
-- Дата
Класс Show. Строки и символы | 29
data Date = Date Year Month Day
-- Год
data Year
= Year Int
-- Int это целые числа
-- Месяц
data Month
= January
| February
| March
| April
| May
| June
| July
| August
| September
| October
| November | December
data Day = Day Int
-- Неделя
data Week
= Monday
| Tuesday
| Wednesday
| Thursday
| Friday
| Saturday
| Sunday
-- Время