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