5
比方说,我想这样定义一个树:弃用-XDatatypeContext的替代方法?
{-# LANGUAGE DatatypeContexts #-}
class Node a where
getContent :: (Num a) => a
data (Node a) => Tree a = Leaf a
| Branch a (Tree a) (Tree a)
-XDatatypeContexts现在已经过时了。没有它可以做类似的事情吗?
非常感谢!虽然我认为你的意思是 Branch ::(Node a)=> a - > Tree a - > Tree a – Jake
@Jake:No - 它就像函数类型签名一样工作,所以最后一个'Tree a'是结果数据类型。 'a - >树a - >树a'只有一个子树。比较你当前拥有的'Branch'构造函数的类型。 –
哦,对,我明白了。 – Jake