Алгебралық дерек типі – құрама типтерді біріктіру арқылы жасалатын дерек түрі. Өнім типтері (жұптар, жазбалар) және қосынды типтері (бірлестіктер) туралы біліңіз.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Құрама дерек типі
Kind of composite data type
Компьютерлік бағдарламалауда, әсіресе функционалдық бағдарламалауда және типтер теориясында, алгебралық дерек типі (АДТ) – бұл құрама типтің бір түрі, яғни басқа типтерді біріктіру арқылы құрастырылған тип. Алгебралық типтердің екі негізгі классы – көбейту типтері (яғни, топтамалар және жазбалар) және қосынды типтері (яғни, белгіленген немесе оқшауланған біріктірулер, копродукт типтері немесе вариант типтері). Көбейту типінің мәндері әдетте бірнеше мәндерден тұрады, олар өрістер деп аталады. Осы типтегі барлық мәндер өріс типтерінің бірдей комбинациясына ие. Көбейту типінің барлық мүмкін мәндерінің жиынтығы – оның өріс типтерінің барлық мүмкін мәндерінің теориялық жиынтығы, яғни Декарт көбейтіндісі. Қосынды типінің мәндері әдетте бірнеше классқа топтастырылады, оларды варианттар деп атайды. Вариант типінің мәні әдетте конструктор деп аталатын квазифункционалдық элемент арқылы құрылады. Әр варианттың өзіне тән конструкторы бар, ол белгілі бір типтегі аргументтердің белгілі бір санын қабылдайды. Қосынды типінің барлық мүмкін мәндерінің жиынтығы – оның варианттарының барлық мүмкін мәндерінің теориялық жиынтығы, яғни, оқшауланған біріктіру. Сандалған типтер – конструкторлар аргументтер қабылдамайтын қосынды типтерінің ерекше жағдайы, себебі әрбір конструктор үшін дәл бір мән анықталады. Алгебралық типтердің мәндері үлгіге сәйкес талдау арқылы талданады, ол мәнді оның конструкторы немесе өріс атауы бойынша анықтайды және ондағы деректерді шығарады.
In computer programming, especially functional programming and type theory, an algebraic data type (ADT) is a kind of composite type, i. e., a type formed by combining other types. Two common classes of algebraic types are product types (i. e., tuples and records) and sum types (i. e., tagged or disjoint unions, coproduct types or variant types). The values of a product type typically contain several values, called fields. All values of that type have the same combination of field types. The set of all possible values of a product type is the set theoretic product, i. e., the Cartesian product, of the sets of all possible values of its field types. The values of a sum type are typically grouped into several classes, called variants. A value of a variant type is usually created with a quasi functional entity called a constructor. Each variant has its own constructor, which takes a specified number of arguments with specified types. The set of all possible values of a sum type is the set theoretic sum, i. e., the disjoint union, of the sets of all possible values of its variants. Enumerated types are a special case of sum types in which the constructors take no arguments, as exactly one value is defined for each constructor. Values of algebraic types are analyzed with pattern matching, which identifies a value by its constructor or field names and extracts the data it contains.
Тарих
Алгебралық деректер түрлері 1970 жылдары Эдинбург университетінде жасалған, Хоуп деп аталатын кішкентай функционалдық бағдарламалау тілінде пайда болды.
Algebraic data types were introduced in Hope, a small functional programming language developed in the 1970s at the University of Edinburgh.