fbpx
维基百科

代数数据类型

代数数据类型(英語:algebraic data type,缩写ADT)是一种复合类型,指由其他資料類型组合而成的类型,在電腦编程中,尤其是函数式编程类型论中應用。

两类常见的代数类型是积类型英语Product type(即元组和记录)与和类型(即标签联合) 。[1]

一个积类型的值通常包含多个值,即字段。该类型的所有值都有相同的字段类型组合。一个积类型的所有可能值的集合是其字段类型的所有可能值的集合的集合论乘积,即笛卡尔积

一个和类型的值通常被分组为多个类别,即变体。一个变体类型的值通常是用一个叫做构造器的准功能实体创建的。每个变体都有自己的构造函数,它接受指定数量的参数,并具有指定的类型。和类型的所有可能值的集合是其变体的所有可能值的集合的集合论之和,即不相连的联合。枚举类型是和类型的一个特例,其中构造函数不需要参数,因为每个构造函数只定义一个值。

代数类型的值是用模式匹配来分析的,它通过构造函数或字段名来识别一个值,并提取它所包含的数据。

代数数据类型被引入到Hope中。Hope是一个20世纪70年代在爱丁堡大学开发的小型函数式编程语言[2]

支持代数数据类型的编程语言 编辑

许多编程语言将代数数据类型作为一等类型概念,包括:

参考文献 编辑

  1. ^ Records and variants- OCaml manual section 1.4 互联网档案馆的,存档日期2020-04-28.
  2. ^ Paul Hudak; John Hughes; Simon Peyton Jones; Philip Wadler. A history of Haskell: being lazy with class. Proceedings of the third ACM SIGPLAN conference on History of programming languages. Presentations included Rod Burstall, Dave MacQueen, and Don Sannella on Hope, the language that introduced algebraic data types 
  3. ^ Calculus of Inductive Constructions (页面存档备份,存于互联网档案馆), and basic standard libraries : Datatypes (页面存档备份,存于互联网档案馆) and Logic (页面存档备份,存于互联网档案馆).
  4. ^ CppCon 2016: Ben Deane "Using Types Effectively". (原始内容存档于2021-12-12) –通过www.youtube.com. 
  5. ^ Algebraic Data Types in Haskell. Serokell. [2023-01-03]. (原始内容于2023-02-15). 
  6. ^ Enum Instance. Haxe - The Cross-platform Toolkit. [2023-01-03]. (原始内容于2023-01-28). 
  7. ^ JEP 360: Sealed Classes (Preview). OpenJDK. [2023-01-03]. (原始内容于2022-05-23). 
  8. ^ Sealed Classes - Kotlin Programming Language. Kotlin. [2023-01-03]. (原始内容于2023-02-08). 
  9. ^ Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.. reasonml.github.io. [2023-01-03]. (原始内容于2022-05-06). 
  10. ^ Enums and Pattern Matching - The Rust Programming Language. doc.rust-lang.org. [31 August 2021]. (原始内容于2023-01-18). 

代数数据类型, 此條目可参照英語維基百科相應條目来扩充, 2023年2月17日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标签, 此條目翻譯自其他語言維基百科, 需要相關領域的編者協助校對翻譯. 此條目可参照英語維基百科相應條目来扩充 2023年2月17日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 此條目翻譯自其他語言維基百科 需要相關領域的編者協助校對翻譯 如果您精通本領域 又能清楚地將來源語言翻譯為中文 歡迎您協助校訂翻譯 原文参见维基数据 代数数据类型 英語 algebraic data type 缩写ADT 是一种复合类型 指由其他資料類型组合而成的类型 在電腦编程中 尤其是函数式编程和类型论中應用 两类常见的代数类型是积类型 英语 Product type 即元组和记录 与和类型 即标签联合 1 一个积类型的值通常包含多个值 即字段 该类型的所有值都有相同的字段类型组合 一个积类型的所有可能值的集合是其字段类型的所有可能值的集合的集合论乘积 即笛卡尔积 一个和类型的值通常被分组为多个类别 即变体 一个变体类型的值通常是用一个叫做构造器的准功能实体创建的 每个变体都有自己的构造函数 它接受指定数量的参数 并具有指定的类型 和类型的所有可能值的集合是其变体的所有可能值的集合的集合论之和 即不相连的联合 枚举类型是和类型的一个特例 其中构造函数不需要参数 因为每个构造函数只定义一个值 代数类型的值是用模式匹配来分析的 它通过构造函数或字段名来识别一个值 并提取它所包含的数据 代数数据类型被引入到Hope中 Hope是一个20世纪70年代在爱丁堡大学开发的小型函数式编程语言 2 支持代数数据类型的编程语言 编辑许多编程语言将代数数据类型作为一等类型概念 包括 Ceylon Clean Coq 3 C 4 Elm Flow 页面存档备份 存于互联网档案馆 F F Free Pascal Haskell 5 Haxe 6 Hope Idris Java 15 7 Kotlin 8 Limbo Language Of Temporal Ordering Specification LOTOS Mercury Miranda Nemerle Nim OCaml Opa OpenCog Perl PureScript Racket Reason 9 Rust 10 Scala Standard ML Swift Tom TypeScript Visual Prolog colwidth 30em 参考文献 编辑 Records and variants OCaml manual section 1 4 互联网档案馆的存檔 存档日期2020 04 28 Paul Hudak John Hughes Simon Peyton Jones Philip Wadler A history of Haskell being lazy with class Proceedings of the third ACM SIGPLAN conference on History of programming languages Presentations included Rod Burstall Dave MacQueen and Don Sannella on Hope the language that introduced algebraic data types Calculus of Inductive Constructions 页面存档备份 存于互联网档案馆 and basic standard libraries Datatypes 页面存档备份 存于互联网档案馆 and Logic 页面存档备份 存于互联网档案馆 CppCon 2016 Ben Deane Using Types Effectively 原始内容存档于2021 12 12 通过www youtube com Algebraic Data Types in Haskell Serokell 2023 01 03 原始内容存档于2023 02 15 Enum Instance Haxe The Cross platform Toolkit 2023 01 03 原始内容存档于2023 01 28 JEP 360 Sealed Classes Preview OpenJDK 2023 01 03 原始内容存档于2022 05 23 Sealed Classes Kotlin Programming Language Kotlin 2023 01 03 原始内容存档于2023 02 08 Reason Reason lets you write simple fast and quality type safe code while leveraging both the JavaScript amp OCaml ecosystems reasonml github io 2023 01 03 原始内容存档于2022 05 06 Enums and Pattern Matching The Rust Programming Language doc rust lang org 31 August 2021 原始内容存档于2023 01 18 取自 https zh wikipedia org w index php title 代数数据类型 amp oldid 77840148, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。