数据类型中三元冒号(:: :)在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
因此就像您将VarAtomNil作为数据构造函数一样,(:::)也是数据构造函数。此数据构造函数采用两个参数均为Term类型。例如,列表具有(:)作为数据构造函数。
数据构造函数可以是一个符号序列,给定这些符号以冒号(:)开头,并且它不是诸如:::等的保留运算符。这在Syntax reference of the Haskell report中指定:
consym        →   ( : {symbol})⟨reservedop⟩
reservedop    →  .. | : | :: | = | \ | | | <- | -> |  @ | ~ | =>

关于haskell - 数据类型中的三元冒号(:: :)在haskell中意味着什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63839012/

10-12 20:37