Haskell 哈斯克尔:有人能解释一下下面的algebric数据类型吗
谁能解释一下下面的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
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
就是学生的列表。。