我有一个如下定义的数据构造函数:
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。