Шаг 48.
Основы языка Haskell.
Основные функции библиотеки Prelude. Понятие о выводе типов

    На этом шаге мы рассмотрим это понятие.

    В языке Haskell реализован механизм вывода типов.

Определение [1, с.85].
Выводом типов называется автоматическое полное или частичное вычисление типов некоторых выражений программы, основанное лишь на её синтаксической структуре и производимое статически, т.е. без необходимости запуска программы.

    Алгоритм и сама возможность вывода типов целиком зависят от используемой системы типов.

    Исходная информация для алгоритма вывода типов - сама программа, способ присваивания типов литералам, типы некоторых функций и значений, а также правила типизации синтаксических конструкций (типы встроенных арифметических операций, типы операций доступа к структурам данных, взятые из определений этих структур, и т.п.). Правила типизации синтаксических конструкций и литералов обычно фиксированы в рамках одного алгоритма вывода типов.

    Наиболее известный, простой и широко применяющийся в алгоритм вывода типов - это алгоритм Хиндли-Милнера (используемый, в частности, в типизированном  λ-исчислении).

    Алгоритм, называемый  System F, является основой систем типов большинства современных функциональных языков программирования, таких как OCaml и Haskell.

    Таким образом, в большинстве случаев программисту не нужно явно указывать тип выражений, т.к. этот тип будет автоматически вычислен на основе контекста вычислительного процесса.

    Однако культура программирования на языке Haskell подразумевает явное указание типа используемых функций.


(1)Кирпичёв Е.Р. Элементы функциональных языков // Практика функционального программирования, 2009, 3, с.83-197.

    На следующем шаге мы приведем перечень задач для сомостоятельного решения.




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