Algebraic data type

http://dbpedia.org/resource/Algebraic_data_type an entity of type: Thing

In der Informatik, besonders in der funktionalen Programmierung und hier insbesondere in Haskell und der Typentheorie bezeichnet ein algebraischer Datentyp einen zusammengesetzten Datentypen. rdf:langString
Un type algébrique est une forme de type de données composite, qui combine les fonctionnalités des types produits (n‐uplets ou enregistrements) et des types sommes (union disjointe). Combinée à la récursivité, elle permet d’exprimer les données structurées telles que les listes et les arbres. rdf:langString
프로그래밍 언어, 특히 함수형 프로그래밍과 타입 이론에서의 대수적 자료형(영어: Algebraic data type)은 다른 타입의 결합으로 만들어지는 합성 타입(영어: Composite type)을 가리킨다. 대수적 자료형의 두 가지 대표적인 예로써는 공용체(영어: Union) 등으로 불리는 합 타입(영어: Sum type), 레코드(영어: Record), 튜플(영어: Tuple) 등으로 불리는 곱 타입(영어: Product type)이 있다. 대수적 자료형은 다른 자료형의 대체로 다른 자료형을 생성자로 감싸고 있다. 어떤 값도 대수적 자료형의 생성자의 인자가 될 수 있다. 반면에 다른 자료형은 생성자를 실행할 수 없으며 패턴 매칭(영어: Pattern matching) 과정을 통해 생성자를 얻을 수 있다. 가장 일반적인 대수적 자료형은 두개의 생성자를 가진 목록형(list)이다. 목록형은 비어있는 목록을 위해 Nil 또는 []를 지원한다. 예를 들어 LISP에서는 Cons(생성자의 준말)나 ::, :등을 이용하여 짧은 목록을 결합하여 새로운 목록을 만들 수 있게 한다. ((Cons 1 '(2 3 4)) 또는 1:[2,3,4]와 같은 방법으로 사용된다. rdf:langString
代数的データ型(だいすうてきデータがた、英: algebraic data type)とはプログラミング、特に関数型プログラミングや型システムにおいて使われるデータ型である。それぞれの代数的データ型の値には、1個以上のコンストラクタがあり、各コンストラクタには0個以上の引数がある。 代数的データ型の値(データ)の感覚的な説明としては、引数で与えられた他のデータ型の値を、コンストラクタで包んだようなもの、である。コンストラクタに引数がある代数データ型は複合型(他のデータ型を組み合わせて形成する型)である。 rdf:langString
In de informatica is een algebraïsch datatype een datatype waarin de waarden van andere datatypen verpakt zijn met constructoren. De constructor wordt niet uitgevoerd maar deze wordt gebruikt om de data uit het datatype te halen met patroonherkenning. Algebraïsche datatypen worden voornamelijk gebruikt in functionele programmeertalen. rdf:langString
En matemàtiques discretes és usual introduir definicions d'estructures recursives donant els casos de definició i un axioma de clausura indicant que cap altra cosa forma part del definit. Per exemple, els arbres amb informació en els nodes poden definir-se com segueix:Siga T un conjunt. Els arbres amb informació en els nodes són tots els valors que es poden construir amb les regles següents. type 'T Arbol = AVacio | Nodo of ('T Arbol * 'T * 'T Arbol) i en sintaxi d'Haskell: data Arbol T = AVacio | Nodo (Arbol T) T (Arbol T) en Standard ML la mateixa funció s'escriu rdf:langString
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). 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. rdf:langString
Στον προγραμματισμό υπολογιστών και συγκεκριμένα στον συναρτησιακό προγραμματισμό και τη θεωρία τύπων, ο αλγεβρικός τύπος δεδομένων (επίσης γνωστός ως variant τύπος) είναι ένας τύπος δεδομένων καθεμία από τις του οποίου είναι δεδομένο από άλλους τύπους δεδομένων που περιέχεται σε έναν από τους κατασκευαστές του τύπου δεδομένων. Οποιοδήποτε περιεχόμενο δεδομένο είναι όρισμα του κατασκευαστή. Σε αντίθεση με άλλους τύπους δεδομένων, ο κατασκευαστής δεν μπορεί να γίνει αντικείμενο επεξεργασίας και ο μόνος τρόπος επεξεργασίας των περιεχόμενων δεδομένων είναι η αφαίρεση του κατασκευαστή με . rdf:langString
En matemáticas discretas es usual introducir definiciones de estructuras recursivas dando los casos de definición y un axioma de clausura indicando que ninguna otra cosa forma parte de lo definido. Por ejemplo, los árboles con información en los nodos pueden definirse como sigue: Sea T un conjunto. Los árboles con información en los nodos son todos los valores que se pueden construir con las reglas siguientes. type 'T Arbol = AVacio | Nodo of ('T Arbol * 'T * 'T Arbol) y en sintaxis de Haskell (con información en los nodos de tipo t): data Arbol t = AVacio | Nodo (Arbol t) t (Arbol t) rdf:langString
Алгебраи́ческий тип да́нных — в информатике наиболее общий составной тип, представляющий собой тип-сумму из типов-произведений. Алгебраический тип имеет набор конструкторов, каждый из которых принимает на вход значения определённых типов и возвращает значение конструируемого типа. Конструктор представляет собой функцию, которая строит значение своего типа на основе входных значений. Для последующего извлечения этих значений из алгебраического типа используется сопоставление с образцом. data List a = Nil | Cons a (List a) data Bool = False | True rdf:langString
Алгебричний тип даних — в інформатиці найзагальніший тип, який являє собою з типів-добутків. Алгебричний тип має набір , кожен з яких приймає на вхід значення певних типів і повертає значення конструйованого типу. Конструктор є функцією, яка будує значення свого типу на основі вхідних значень. Для подальшого видобування цих значень з алгебричного типу використовується зіставлення зі зразком. data List a = Nil | Cons a (List a) data Bool = False | True rdf:langString
rdf:langString Tipus de dades algebraic
rdf:langString Algebraischer Datentyp
rdf:langString Αλγεβρικός τύπος δεδομένων
rdf:langString Algebraic data type
rdf:langString Tipo de dato algebraico
rdf:langString Type algébrique de données
rdf:langString 대수적 자료형
rdf:langString 代数的データ型
rdf:langString Algebraïsch datatype
rdf:langString Алгебраический тип данных
rdf:langString Алгебричний тип даних
xsd:integer 283867
xsd:integer 1107258276
rdf:langString En matemàtiques discretes és usual introduir definicions d'estructures recursives donant els casos de definició i un axioma de clausura indicant que cap altra cosa forma part del definit. Per exemple, els arbres amb informació en els nodes poden definir-se com segueix:Siga T un conjunt. Els arbres amb informació en els nodes són tots els valors que es poden construir amb les regles següents. 1. * L'arbre buit és un arbre i és representat amb la constant ABuit. 2. * Si i són arbres, i x és un element de T, llavors Node és un arbre. 1. * Els arbres són únicament els valors que es construeixen utilitzant les regles 1 i 2. La construcció corresponent en els llenguatges de programació es diu Tipus de dades algebraic. Les seues polimòrfiques van ser introduïdes per Robin Milner juntament amb la definició del llenguatge i han estat adoptades des de llavors en diversos llenguatges de programació, sobretot en els llenguatges de programació funcionals. Per exemple, la definició del tipus arbre binari amb informació en els nodes de tipus T s'escriu en Ocaml com seguix: type 'T Arbol = AVacio | Nodo of ('T Arbol * 'T * 'T Arbol) i en sintaxi d'Haskell: data Arbol T = AVacio | Nodo (Arbol T) T (Arbol T) Els constructors del tipus Arbre són ABuit i Node els quals, al rebre els arguments necessaris produeixen un valor del tipus arbre. Per exemple, en Ocaml, ABuit és un arbre igual que Node (ABuit,5,ABuit). Les operacions sobre els tipus recursius generalment s'escriuen utilitzant la construcció de . Per exemple, en Haskell, el nombre de nivells d'un arbre de defineix com: nivells :: Arbre T -> Int nivells AVacio = 0 nivells (Nodo i n d) = 1 + max (nivells i) (nivells d) en Standard ML la mateixa funció s'escriu fun nivells AVacio = 0 | nivells Nodo(i,n,d) = 1 + max (nivells i) (nivells d)
rdf:langString Στον προγραμματισμό υπολογιστών και συγκεκριμένα στον συναρτησιακό προγραμματισμό και τη θεωρία τύπων, ο αλγεβρικός τύπος δεδομένων (επίσης γνωστός ως variant τύπος) είναι ένας τύπος δεδομένων καθεμία από τις του οποίου είναι δεδομένο από άλλους τύπους δεδομένων που περιέχεται σε έναν από τους κατασκευαστές του τύπου δεδομένων. Οποιοδήποτε περιεχόμενο δεδομένο είναι όρισμα του κατασκευαστή. Σε αντίθεση με άλλους τύπους δεδομένων, ο κατασκευαστής δεν μπορεί να γίνει αντικείμενο επεξεργασίας και ο μόνος τρόπος επεξεργασίας των περιεχόμενων δεδομένων είναι η αφαίρεση του κατασκευαστή με . Ο πιο κοινός αλγεβρικός τύπος δεδομένων είναι η λίστα, με δύο κατασκευαστές: Nil or [] για την κενή λίστα, και Cons (μια συντομογραφία του construct), ::, ή : για το συνδυασμό ενός νέου στοιχείου με μια λίστα προς δημιουργία μιας νέας διακριτής λίστας (για παράδειγμα Cons 1 [2, 3, 4] ή 1:[2,3,4]). Ειδικές περιπτώσεις αλγεβρικών τύπων είναι οι όπως οι και οι εγγραφές (που έχουν μόνο έναν κατασκευαστή), οι ή (πολλοί κατασκευαστές με μοναδικό όρισμα) και οι (πολλοί κατασκευαστές χωρίς όρισμα). Οι αλγεβρικοί τύποι είναι ένα είδος (π.χ. ένας τύπος σχηματισμένος από το συνδυασμό άλλων τύπων). Ένας αλγεβρικός τύπος μπορεί να είναι επίσης αφηρημένος τύπος δεδομένων (ΑΤΔ) αν οι κατασκευαστές του δεν είναι ορατοί έξω από το module που έχει οριστεί. Οι τιμές ενός τέτοιου τύπου μπορούν να τροποποιηθούν μόνο χρησιμοποιώντας συναρτήσεις ορισμένες στη μονάδα (module) ορισμού του τύπου. Στη θεωρία συνόλων το ισοδύναμο ενός αλγεβρικού τύπου δεδομένων είναι μια – ένα σύνολο τα στοιχεία του οποίου είναι ζεύγη που αποτελούνται από μία ετικέτα (ανάλογη του κατασκευαστή) και ένα αντικείμενο αντίστοιχου με την ετικέτα τύπου (ανάλογα με τα ορίσματα του κατασκευαστή).
rdf:langString 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. Algebraic data types were introduced in Hope, a small functional programming language developed in the 1970s at the University of Edinburgh.
rdf:langString In der Informatik, besonders in der funktionalen Programmierung und hier insbesondere in Haskell und der Typentheorie bezeichnet ein algebraischer Datentyp einen zusammengesetzten Datentypen.
rdf:langString En matemáticas discretas es usual introducir definiciones de estructuras recursivas dando los casos de definición y un axioma de clausura indicando que ninguna otra cosa forma parte de lo definido. Por ejemplo, los árboles con información en los nodos pueden definirse como sigue: Sea T un conjunto. Los árboles con información en los nodos son todos los valores que se pueden construir con las reglas siguientes. 1. * El árbol vacío es un árbol y es representado con la constante AVacio. 2. * Si y son árboles, y x es un elemento de T, entonces Nodo es un árbol. 3. * Los árboles son únicamente los valores que se construyen utilizando las reglas 1 y 2. La construcción correspondiente en los lenguajes de programación se llama Tipo de dato abstracto Sus polimórficas fueron introducidas por Robin Milner junto con la definición del lenguaje y han sido adoptadas desde entonces en diversos lenguajes de programación, sobre todo en los lenguajes de programación funcionales. Por ejemplo, la definición del tipo árbol binario con información en los nodos de tipo T se escribe en como sigue: type 'T Arbol = AVacio | Nodo of ('T Arbol * 'T * 'T Arbol) y en sintaxis de Haskell (con información en los nodos de tipo t): data Arbol t = AVacio | Nodo (Arbol t) t (Arbol t) Los constructores del tipo Árbol son AVacio y Nodo los cuales,al recibir los argumentos necesarios producen un valor del tipoárbol. Por ejemplo, en Ocaml, AVacio es un árbol al igual que Nodo (AVacio,5,AVacio). Las operaciones sobre los tipos recursivos generalmente se escribenutilizando la construcción de . Por ejemplo,en Haskell, el número de niveles de un árbol se define como: niveles :: Arbol t -> Int niveles AVacio = 0 niveles (Nodo i n d) = 1 + max (niveles i) (niveles d) en Standard ML la misma función se escribe fun niveles AVacio = 0 | niveles Nodo(i,n,d) = 1 + max (niveles i) (niveles d)
rdf:langString Un type algébrique est une forme de type de données composite, qui combine les fonctionnalités des types produits (n‐uplets ou enregistrements) et des types sommes (union disjointe). Combinée à la récursivité, elle permet d’exprimer les données structurées telles que les listes et les arbres.
rdf:langString 프로그래밍 언어, 특히 함수형 프로그래밍과 타입 이론에서의 대수적 자료형(영어: Algebraic data type)은 다른 타입의 결합으로 만들어지는 합성 타입(영어: Composite type)을 가리킨다. 대수적 자료형의 두 가지 대표적인 예로써는 공용체(영어: Union) 등으로 불리는 합 타입(영어: Sum type), 레코드(영어: Record), 튜플(영어: Tuple) 등으로 불리는 곱 타입(영어: Product type)이 있다. 대수적 자료형은 다른 자료형의 대체로 다른 자료형을 생성자로 감싸고 있다. 어떤 값도 대수적 자료형의 생성자의 인자가 될 수 있다. 반면에 다른 자료형은 생성자를 실행할 수 없으며 패턴 매칭(영어: Pattern matching) 과정을 통해 생성자를 얻을 수 있다. 가장 일반적인 대수적 자료형은 두개의 생성자를 가진 목록형(list)이다. 목록형은 비어있는 목록을 위해 Nil 또는 []를 지원한다. 예를 들어 LISP에서는 Cons(생성자의 준말)나 ::, :등을 이용하여 짧은 목록을 결합하여 새로운 목록을 만들 수 있게 한다. ((Cons 1 '(2 3 4)) 또는 1:[2,3,4]와 같은 방법으로 사용된다.
rdf:langString 代数的データ型(だいすうてきデータがた、英: algebraic data type)とはプログラミング、特に関数型プログラミングや型システムにおいて使われるデータ型である。それぞれの代数的データ型の値には、1個以上のコンストラクタがあり、各コンストラクタには0個以上の引数がある。 代数的データ型の値(データ)の感覚的な説明としては、引数で与えられた他のデータ型の値を、コンストラクタで包んだようなもの、である。コンストラクタに引数がある代数データ型は複合型(他のデータ型を組み合わせて形成する型)である。
rdf:langString In de informatica is een algebraïsch datatype een datatype waarin de waarden van andere datatypen verpakt zijn met constructoren. De constructor wordt niet uitgevoerd maar deze wordt gebruikt om de data uit het datatype te halen met patroonherkenning. Algebraïsche datatypen worden voornamelijk gebruikt in functionele programmeertalen.
rdf:langString Алгебричний тип даних — в інформатиці найзагальніший тип, який являє собою з типів-добутків. Алгебричний тип має набір , кожен з яких приймає на вхід значення певних типів і повертає значення конструйованого типу. Конструктор є функцією, яка будує значення свого типу на основі вхідних значень. Для подальшого видобування цих значень з алгебричного типу використовується зіставлення зі зразком. Простим прикладом алгебричного типу даних є список. Дійсно, список має два конструктори — конструктор порожнього списку і конструктор пари, першим елементом якої є значення певного типу, а другим — список. Приклад визначення списку мовою Haskell: data List a = Nil | Cons a (List a) Так що видно, що алгебричні типи даних є контейнерними типами — вони містять у собі значення інших типів (або того ж самого типу). Те, що в списку перший конструктор не приймає на вхід ніяких параметрів, не повинно викликати сумніву. Така форма конструктора є необхідною для створення значень, які не містять нічого, але є «одиничними» елементами алгебричних типів даних. Спеціальними різновидами алгебричних типів даних є (вони мають тільки один конструктор) та перерахування (в них всі конструктори аргументів не мають зовсім, хоча самих конструкторів може бути кілька). Так, найпростішим, але дуже поширеним перерахуванням є логічний тип. Код на Haskell: data Bool = False | True Також алгебричний тип даних може бути абстрактним, якщо такий тип визначений у деякому модулі, з якого не експортуються конструктори відповідного типу, а доступ до значень всередині алгебричного типу даних здійснюється за допомогою спеціальних методів — . Особливо варто відзначити так звані «узагальнені алгебричні типи даних», реалізовані в мовах Haskell і ML. Залишається відзначити, що з точки зору даних алгебричним типом даних є розмічене об'єднання декартових добутків типів. Кожний доданок у розміченому об'єднанні відповідає одному конструктору, а кожен конструктор своєю чергою визначає декартів добуток типів, відповідних параметрам конструктора. Конструктори без параметрів є порожніми добутками. Якщо алгебричний тип даних є рекурсивним, всі розмічені об'єднання обгортають рекурсивним типом, і кожен конструктор повертає рекурсивний тип.
rdf:langString Алгебраи́ческий тип да́нных — в информатике наиболее общий составной тип, представляющий собой тип-сумму из типов-произведений. Алгебраический тип имеет набор конструкторов, каждый из которых принимает на вход значения определённых типов и возвращает значение конструируемого типа. Конструктор представляет собой функцию, которая строит значение своего типа на основе входных значений. Для последующего извлечения этих значений из алгебраического типа используется сопоставление с образцом. Простым примером алгебраического типа данных является список. Действительно, список имеет два конструктора — конструктор пустого списка и конструктор пары, первым элементом которой является значение определённого типа, а вторым — список. Пример определения списка на языке Haskell: data List a = Nil | Cons a (List a) Так что видно, что алгебраические типы данных являются контейнерными типами — они содержат внутри себя значения других типов (или того же самого типа). То, что у списка первый конструктор не принимает на вход каких-либо параметров, не должно вводить в заблуждение. Такая форма конструктора является необходимой для создания значений, которые внутри себя не содержат ничего, но являются «единичными» элементами алгебраических типов данных. Специальными разновидностями алгебраических типов данных являются (они имеют только один конструктор) и перечисления (у них все конструкторы аргументов не имеют вовсе, хотя самих конструкторов может быть несколько). Так простейшим, но очень широко используемым перечислением является логический тип. Код на Haskell: data Bool = False | True Также алгебраический тип данных может быть абстрактным, если такой тип определён в некотором модуле, из которого не экспортируются конструкторы соответствующего типа, а доступ к значениям внутри алгебраического типа данных осуществляется при помощи специальных методов — . Особо стоит отметить так называемые «обобщённые алгебраические типы данных», которые реализованы в языках Haskell и ML. Остаётся отметить, что с точки зрения данных алгебраическим типом данных является размеченное объединение декартовых произведений типов. Каждое слагаемое в размеченном объединении соответствует одному конструктору, а каждый конструктор в свою очередь определяет декартово произведение типов, соответствующих параметрам конструктора. Конструкторы без параметров являются пустыми произведениями. Если алгебраический тип данных является рекурсивным, всё размеченное объединение обёртывается рекурсивным типом, и каждый конструктор возвращает рекурсивный тип.
xsd:nonNegativeInteger 16539

data from the linked data cloud