数据类型中三元冒号(:: :)在Haskell中意味着什么?
例如:data Term = Var ID | Atom String | Nil | Term:::Term
在本文中可以找到https://gup.ub.gu.se/file/207634
如何使用?
例如,我可以做foo = Var "hello"
,但我不知道Term:::Term
的用途。
最佳答案
(:::)
是数据构造函数的名称。因此,您可以使用以下方式定义Term
类型:
data Term = Var ID | Atom String | Nil | (:::) Term Term
因此就像您将Var
,Atom
和Nil
作为数据构造函数一样,(:::)
也是数据构造函数。此数据构造函数采用两个参数均为Term
类型。例如,列表具有(:)
作为数据构造函数。数据构造函数可以是一个符号序列,给定这些符号以冒号(
:
)开头,并且它不是诸如:
,::
等的保留运算符。这在Syntax reference of the Haskell report中指定:consym → ( : {symbol})⟨reservedop⟩
reservedop → .. | : | :: | = | \ | | | <- | -> | @ | ~ | =>
关于haskell - 数据类型中的三元冒号(:: :)在haskell中意味着什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63839012/