标准的Haskell库中是否有一种实现以下思想的类型:

时间:2019-06-10 13:42:02

标签: haskell recursion types containers

data Container k = EmptyContainer| PrimContainer k (Container k) | FullContainer (Container k) (Container k) deriving (Show)

{-
*Main> let cont1 = PrimContainer 3 EmptyContainer
*Main> cont1
PrimContainer 3 EmptyContainer
*Main> let cont2 = PrimContainer 4 cont1
*Main> cont2
PrimContainer 4 (PrimContainer 3 EmptyContainer)
*Main> let cont3 = FullContainer cont1 cont2
*Main> cont3
FullContainer (PrimContainer 3 EmptyContainer) (PrimContainer 4 (PrimContainer 3 EmptyContainer))
-}

?只是不要重新发明轮子。

也就是说,一般的想法是拥有一个容器类型,该容器类型可以是空容器,基元容器或递归相同类型的容器

例如,它可以是一组操作,可以将其视为一个操作,依此类推...

0 个答案:

没有答案