-1
このコードを思いついたので、続行する方法がわかりません。haskellでバイナリツリーのノード数を計算する方法
treeSize :: (Integral b) => BinaryTree a -> b
treeSize tree = case tree of
Null -> 0
Node _ t1 t2 ->
このコードを思いついたので、続行する方法がわかりません。haskellでバイナリツリーのノード数を計算する方法
treeSize :: (Integral b) => BinaryTree a -> b
treeSize tree = case tree of
Null -> 0
Node _ t1 t2 ->
最後のケースは、Node _ t1 t2 -> 1 + treeSize t1 + treeSize t2
である必要があります。また、Integral b
の制約により、必要以上のものが得られます。この場合はNum b
で十分です。
treeSize :: Num b => BinaryTree a -> b
treeSize Null = 0
treeSize (Node _ t1 t2) = 1 + treeSize t1 + treeSize t2
'ノード_t1 t2 - >ツリーサイズt1 + 1 +ツリーサイズt2'。そしてあなたは本当に '整数b 'ではなく、' Num b'だけを必要とします。 – Alec
'Num b'は最も一般的な型ですが、' Integral b'も同様に有用な型であり、実際にどのような結果値が可能であるかをより詳細に知っていると思います。 – amalloy
@Alec OPが正しい答えとして受け入れることができるように、あなたのコメントを回答してください。 – PieOhPah