Конструктор (функциональное программирование)

Материал из Поле цифровой дидактики

В теории типов и функциональных языках программирования конструктор алгебраического типа данных или просто конструктор представляет собой функцию с пустым телом, конструирующую объект алгебраического типа данных.

Алгебраические типы данных являются важным элементом языков.

Пример

Простейшую структуру 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