我正在浏览一些Haskell文档,并找到了这个声明
您可以将构造函数(类型和数据的)声明为infix操作符,这可以使您的代码更加可读性。
我能够在infix表单中使用数据构造函数,如下所示:
Prelude> data List a = Empty | a :-> (List a) deriving Show
Prelude>
Prelude> let var1 = 10 :-> Empty
Prelude> let var2 = 20 :-> var1
Prelude> let var3 = 30 :-> var2
Prelude>
Prelude> var1
10 :-> Empty
Prelude>
Prelude> var2
20 :-> (10 :-> Empty)
Prelude>
Prelude> var3
30 :-> (20 :-> (10 :-> Empty))我的问题是如何在infix表单中使用类型构造函数,有人能给我举个例子来理解这一点吗?
发布于 2016-04-23 04:53:59
为了扩展@chi的答案,在最近的GHC版本中,TypeOperators的语法发生了一些变化:如果不是infix 类型变量名称(即没有前导:的符号)的类型构造函数名仍然被归类为类型构造函数名称,这意味着下面的代码工作并定义了infix类型的构造函数+
{-# language TypeOperators #-}
data a + b = L a | R bhttps://stackoverflow.com/questions/36804470
复制相似问题