Какая разница между типом и типом данных в Haskell?
Я немного смущен относительно разницы между типом и типом данных в Haskell.
Из литературы, с которой я столкнулся, у меня сложилось впечатление, что они были разными понятиями.
Ответы
Ответ 1
Тип и тип данных относятся к одной и той же концепции.
Ключевые слова Haskell type
и data
отличаются друг от друга: data
позволяет ввести новый тип алгебраических данных, а type
просто делает синоним типа.
Подробнее см. Haskell wiki.
Ответ 2
Термины иногда смешиваются, но обычно "тип данных" относится к типу, введенному с использованием ключевого слова data
, у которого есть конструкторы, с которыми можно сопоставить соответствие шаблону. Они также называются алгебраическими типами данных ".
Просто "тип" является более общим термином, который также включает типы, созданные с помощью newtype
, типов функций и т.д.