Среда, 19.12.2018, 00:53
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1184
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Списки

       В отличие от кортежей, список может хранить произвольное количество элементов. Чтобы задать список в Haskell, необходимо в квадратных скобках перечислить его элементы через запятую. Все эти элементы должны принадлежать одному и тому же типу. Тип списка с элементами, принадлежащими типу a, обозначается как [a].

  Prelude>[1,2]
  [1,2] :: [Integer]
  Prelude>[’1’,’2’,’3’]
  [’1’,’2’,’3’] :: [Char]


    В списке может не быть ни одного элемента. Пустой список обозначается как []. Оператор : (двоеточие) используется для добавления элемента в начало списка. Его левым аргументом должен быть элемент, а правым — список:

  Prelude>1:[2,3]
  [1,2,3] :: [Integer]
  Prelude>’5’:[’1’,’2’,’3’,’4’,’5’]
  [’5’,’1’,’2’,’3’,’4’,’5’] :: [Char]
  Prelude>False:[]
  [False] :: [Bool]


     С помощью оператора (:) и пустого списка можно построить любой список:

  Prelude>1:(2:(3:[]))
  [1,2,3] :: Integer


    Оператор (:) ассоциативен вправо, поэтому в приведенном выше выражении можно опустить скобки:
 
  Prelude>1:2:3:[]
  [1,2,3] :: Integer


    Элементами списка могут быть любые значения — числа, символы, кортежи, другие списки и т.д.

  Prelude>[(1,’a’),(2,’b’)]
  [(1,’a’),(2,’b’)] :: [(Integer,Char)]
  Prelude>[[1,2],[3,4,5]]
  [[1,2],[3,4,5]] :: [[Integer]]


     Для работы со списками в языке Haskell существует большое количество функций. В данной лабораторной работе рассмотрим только некоторые из
них.
  • Функция head возвращает первый элемент списка.
  • Функция tail возвращает список без первого элемента.
  • Функция length возвращает длину списка.

    Функции head и tail определены для непустых списков. При попытке применить их к пустому списку интерпретатор сообщает об ошибке. При-
меры работы с указанными функциями:

  Prelude>head [1,2,3]
  1 :: Integer
  Prelude>tail [1,2,3]
  [2,3] :: [Integer]
  Prelude>tail [1]
  [] :: Integer
  Prelude>length [1,2,3]
  3 :: Int


    Заметьте, что результат функции length принадлежит типу Int, а не типу Integer. Для соединения (конкатенации) списков в Haskell определен оператор ++.

  Prelude>[1,2]++[3,4]
  [1,2,3,4] :: Integer


Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---