52700.fb2 Учебник по Haskell - читать онлайн бесплатно полную версию книги . Страница 13

Учебник по Haskell - читать онлайн бесплатно полную версию книги . Страница 13

способов комбинирования, посмотрим на тип, в котором есть и то, и другое:

data [a] = [] | a : [a]

Это определение списка. Как мы уже поняли, a – это параметр. Список [a] может быть либо пустым

списком [], либо комбинацией a : [a]. В этой комбинации знак : объединяет элемент типа a и ещё один

список [a]. Это рекурсивное определение, они встречаются в Haskell очень часто. Если это пока кажется

непонятным, не пугайтесь, в следующих главах будет представлено много примеров с пояснениями.

Приведём ещё несколько примеров определений; ниже типы определяют базовые понятия для мира ка-

лендаря: то что стоит за – является комментарием и игнорируется при выполнении программы:

14 | Глава 1: Основы

-- Дата

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

-- Время

data Time = Time Hour Minute Second

data Hour

= Hour

Int

-- Час

data Minute = Minute Int

-- Минута

data Second = Second Int

-- Секунда

Одной из основных целей разработчиков Haskell была ясность. Они стремились создать язык, предложе-

ния которого будут простыми и понятными, близкий к языку спецификаций.