MyTetra Share
Делитесь знаниями!
Кортежи в Haskell
Время создания: 25.04.2019 13:04
Автор: br0ke
Текстовые метки: haskell, fp, tuple, кортеж, type, datatype, fst, snd
Раздел: Информационные технологии - Haskell
Запись: and-semakin/mytetra_data/master/base/1556179467a0p1d8jreb/text.html на raw.githubusercontent.com

В Haskell можно использовать составной (контейнерный) тип данных -- кортеж. Кортеж может содержать в себе несколько значений разных типов (гетерогенен). Длина кортежа является частью его типа, поэтому не может изменяться, в отличии от списка.


Объявление 2-кортежа:


> (1, 2)

(1, 2)

> :type (1, 2)

(1, 2) :: (Num a, Num b) => (a, b)


Для 2-кортежей есть функции для извлечения первого и второго значения:

> fst (1, 2)

1

> snd (1, 2)

2


Объявление 3-кортежа из разных типов:

> :type (1, True, 'c')

(1, True, 'c') :: Num a => (a, Bool, Char)


Не существует кортежей из одного элемента, в таком смысле скобки просто означают группировку и отбрасываются:

> (3)

3


Но зато существует пустой кортеж:

> ()

()

> :type ()

() :: ()

 
MyTetra Share v.0.59
Яндекс индекс цитирования