小编bud*_*pet的帖子

类似于列表的自定义数据构造函数的模式匹配

我有一个如下定义的数据构造函数:

data Stack a = Empty | NonEmpty a (Stack a)
         deriving (Show, Read, Eq)
Run Code Online (Sandbox Code Playgroud)

然后我有一个将其与模式匹配一​​起使用的函数:

func :: Stack a -> a
func (Stack.NonEmpty val Stack.Empty) = ...
func (Stack.NonEmpty val1 (Stack.NonEmpty val2 Stack.Empty)) = ...
Run Code Online (Sandbox Code Playgroud)

我想做的是使用类似序列或列表的操作符进行模式匹配,如下所示:

func :: Stack a -> a
func (val :> Stack.Empty) = ...
func (val1 :> val2 :> Stack.Empty) = ...
Run Code Online (Sandbox Code Playgroud)

我知道它实际上不是一个运算符,而是一个数据构造函数,看起来像一个运算符,但我无法使其工作。

几周前我也开始学习 Haskell。

haskell pattern-matching

1
推荐指数
1
解决办法
96
查看次数

标签 统计

haskell ×1

pattern-matching ×1