Шаг 80.
Основы языка Haskell.
Функции обработки списков. Функции обработки двухэлементных кортежей (пар)

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

    Укажем две основные функции.

    1. Функция, возвращающая первый элемент кортежа, содержащего два элемента:

   fst:: (a,b) -> a
   fst (a,b)
Например:
   > fst (1,2)  > fst ([-1],2)  > fst ("qwe qwe",-22)
   1            [-1]            "qwe qwe"

    2. Функция, возвращающая второй элемент кортежа, содержащего два элемента:

   snd:: (a,b) -> b
   snd (a,b)
Например:
   > snd (1,2)   > snd (1,[-2])   > snd (11,"qwe qwe")
   2             [-2]             "qwe qwe"

    Приведем небольшой демонстрационный пример.

   {- Демонстрация использования кортежей для воз- -}
   {- вращения нескольких значений.                -}
   {- Назначение функций определите самостоятельно -}
   {- -------------------------------------------- -}
   f:: Integer -> (Integer,Integer)
   f x = ((x `div` 10) `mod` 10, x `mod` 10)
   -----------------------------------------
   maxMin:: (Int,Int) -> (Int,Int)
   maxMin (x,y) = if x>=y
                    then (x,y)
                    else (y,x)
   ------------------------------
   -- Неудачные тестовые примеры:
   ------------------------------
   test1 = f 234        == (3,4)
   test2 = maxMin (1,2) == (2,1)
Файл с примерами можно взять здесь.

    На следующем шаге мы рассмотрим графическое представление списочных структур.




Предыдущий шаг Содержание Следующий шаг