На этом шаге мы рассмотрим это понятие.
В языке Haskell реализован механизм вывода типов.
Алгоритм и сама возможность вывода типов целиком зависят от используемой системы типов.
Исходная информация для алгоритма вывода типов - сама программа, способ присваивания типов литералам, типы некоторых функций и значений, а также правила типизации синтаксических конструкций (типы встроенных арифметических операций, типы операций доступа к структурам данных, взятые из определений этих структур, и т.п.). Правила типизации синтаксических конструкций и литералов обычно фиксированы в рамках одного алгоритма вывода типов.
Наиболее известный, простой и широко применяющийся в алгоритм вывода типов - это алгоритм Хиндли-Милнера (используемый, в частности, в типизированном λ-исчислении).
Алгоритм, называемый System F, является основой систем типов большинства современных функциональных языков программирования, таких как OCaml и Haskell.
Таким образом, в большинстве случаев программисту не нужно явно указывать тип выражений, т.к. этот тип будет автоматически вычислен на основе контекста вычислительного процесса.
Однако культура программирования на языке Haskell подразумевает явное указание типа используемых функций.
На следующем шаге мы приведем перечень задач для сомостоятельного решения.