代数数据类型 代数数据类型英語Algebraic data type缩写ADT是一种复合类型指由其他資料類型组合而成的类型在電腦编程中尤其是函数式编程和类型论中應用 两类常见的代数类型是积类型英语Product type即元组和记录与和类型即标签联合  一个积类型的值通常包含多个值即字段该类型的所有值都有相同的字段类型组合一个积类型的所有可能值的集合是其字段类型的所有可能值的集合的集合论乘积即笛卡尔积 一个和类型的值通常被分组为多个类别即变体一个变体类型的值通常是用一个叫做构造器的准功能实体创建的每个变体都有自己的构造函数它接受指定数量的参数并具有指定的类型和类型的所有可能值的集合是其变体的所有可能值的集合的集合论之和即不相连的联合枚举类型是和类型的一个特例其中构造函数不需要参数因为每个构造函数只定义一个值 代数类型的值是用模式匹配来分析的它通过构造函数或字段名来识别一个值并提取它所包含的数据 代数数据类型被引入到Hope中Hope是一个世纪年代在爱丁堡大学开发的小型函数式编程语言