この定義を持つ型があるとしましょう:
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ますが、これは素晴らしいアイデアだとは思いません。