Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 哈斯克尔:有人能解释一下下面的algebric数据类型吗_Haskell_Functional Programming - Fatal编程技术网

Haskell 哈斯克尔:有人能解释一下下面的algebric数据类型吗

Haskell 哈斯克尔:有人能解释一下下面的algebric数据类型吗,haskell,functional-programming,Haskell,Functional Programming,谁能解释一下下面的algebric数据类型 data LOS = Cons Student LOS | Empty deriving (Show) 及 我发现令人困惑的是,LOS数据类型的构造定义了一个学生列表。您可能有一个空列表(empty)或Cons,其中包含一个值或列表的其余部分 data LOS = Cons Student LOS | Empty deriving (Show) 你可以有一个包含一个元素的列表(Cons s1 Empty),一个包含两个元素的列表(Cons s1

谁能解释一下下面的algebric数据类型

data LOS = Cons Student LOS | Empty deriving (Show) 


我发现令人困惑的是,LOS数据类型的构造定义了一个学生列表。您可能有一个空列表(
empty
)或
Cons
,其中包含一个值或列表的其余部分

data LOS = Cons Student LOS | Empty deriving (Show) 

你可以有一个包含一个元素的列表(
Cons s1 Empty
),一个包含两个元素的列表(
Cons s1(Cons s2 Empty)
)等等。

LOS
正在定义一个学生列表。您可能有一个空列表(
empty
)或
Cons
,其中包含一个值或列表的其余部分


你可以有一个包含一个元素的列表(
Cons s1 Empty
),一个包含两个元素的列表(
Cons s1(Cons s2 Empty)
)等等。

这正是一个列表(学生的)的本质-
Cons
Empty
[]
的递归定义类似于一个(链接的)列表这种类型的值要么是空列表,要么是包含一些有效负载和列表其余部分的节点(称为
Cons
)。递归数据类型的一个很好的介绍:你的
LOS
实际上就是
学生列表
。它正是一个列表(学生列表
)is-
Cons
is
Empty
is
[]
服务水平的递归定义类似于(链接)列表。这种类型的值要么是空列表,要么是包含一些有效负载和列表其余部分的节点(称为
Cons
)。递归数据类型的一个很好的介绍:你的
LOS
就是学生的
列表。。