1
我是新来的Haskell和一直在试图建立一个荏苒功能,与具有以下数据结构树的工作原理:哈斯克尔:问题荏苒树
data Tree a = Leaf | Node a (Tree a) (Tree a) deriving Show
到目前为止,我有这样的:
treezip :: (Tree a) -> (Tree b) -> (Tree(a,b))
treezip (Node a leftSubtreea rightSubtreea) (Node b leftSubtreeb rightSubtreeb) =
let l = treezip leftSubtreea leftSubtreeb
r = treezip rightSubtreea rightSubtreeb
in Node a l r
但是,无论何时我尝试将模块加载到GHCi中,我都会收到错误,指向代码的最后一行,并且特别注意变量a
。
我一直在试图弄清楚为什么这不起作用。任何帮助,将不胜感激
提示:节点在压缩后应该存储的值应该是多少? –
“节点”应该在压缩后存储“内部”值。 –
@ J.Doe“Int”从哪里来? 'treezip'需要存储任意数据的两棵树,并生成一个包含*元组数据*的树。如果我有一个Tree Char值和一个Tree Bool值,我必须产生一个Tree(Char,Bool)值。那么,'treezip(Node'c'Leaf Leaf)(Node'True'Leaf Leaf)'应该返回什么? – chepner