この定義を持つ型があるとしましょう:
data Tree a = Leaf a | Branch [Tree a] deriving (Show,Eq)
私が作りたいのは、ブール値を返す関数です。
False
私の二分木に葉が含まれているかどうか、そうでTrue
ない場合。
これが私のコードです:
tester :: Tree a -> Bool
tester (Leaf x) = False
tester (Branch y) = if (Branch (map tester y)) then True else False
これの主な問題は、評価する方法がないことですが、(Branch (map tester y))
それを修正する方法が本当にわかりません。
たとえば、このような新しい句を追加できtester (Branch y) = True
ますが、これは素晴らしいアイデアだとは思いません。