小编yon*_*alf的帖子

一个属于两种不同类型的值构造函数

假设我有三个值构造函数:

A { a :: Int }
B { b :: Char }
C { c :: Bool }
Run Code Online (Sandbox Code Playgroud)

我想创建两种类型X,Y这样类型的值X可以是A,B或者C,像这样:

data X = A {...} | B {...} | C {...}
Run Code Online (Sandbox Code Playgroud)

而type的值Y只能是一个AB类似的东西:

data Y = A {...} | B {...}
Run Code Online (Sandbox Code Playgroud)

这样我就可以编写这样的代码:

foo :: X -> Int -- can pattern match
foo (A _) = 1
foo (B _) = 2
foo (C …
Run Code Online (Sandbox Code Playgroud)

haskell types

3
推荐指数
2
解决办法
245
查看次数

标签 统计

haskell ×1

types ×1