Конструктор (функциональное программирование)
Материал из Поле цифровой дидактики
В теории типов и функциональных языках программирования конструктор алгебраического типа данных или просто конструктор представляет собой функцию с пустым телом, конструирующую объект алгебраического типа данных.
Алгебраические типы данных являются важным элементом языков.
Пример
Простейшую структуру XML-документа в Standard ML можно определить следующим образом<
datatype simple_xml = Empty
| Word of string
| Tagged of string * simple_xml list
Конструкторы обладают всеми правами функций.
fun listOfWords s =
map Word (String.tokens Char.isSpace s)
fun toString e =
let val scat = String.concat in
case e of
Empty => ""
| Word s => s ^ " "
| Tagged (tag, contents) => scat [ "<",tag,">", scat (map toString contents), "</",tag,">" ]
end