相关疑难解决方法(0)

折叠为二叉树

我必须使二叉树的实现实例化一个类型类:

class Set s where
    add :: (Eq a) => a -> s a -> s a
    remove :: (Eq a) => a -> s a -> s a
    exists :: (Eq a) => a -> s a -> Bool
    fold :: (a -> b -> b) -> s a -> b -> b

data BTree k v = Empty | Node k v (BTree k v) (BTree k v) deriving (Show)
Run Code Online (Sandbox Code Playgroud)

一切顺利,直到我必须为二叉树实现折叠.我遇到的问题是我真的不知道如何使用这样的签名保持我的函数的类型声明:(a -> b -> b).我实现了折叠,但我的匿名函数的函数签名有1个累加器和2个值:

foldBST …
Run Code Online (Sandbox Code Playgroud)

haskell fold binary-search-tree

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

标签 统计

binary-search-tree ×1

fold ×1

haskell ×1