関数型プログラミング言語Haskell Part20
■ このスレッドは過去ログ倉庫に格納されています
0731デフォルトの名無しさん
2012/12/27(木) 16:16:16.13data Tree a = Single a | App (Tree a) (Tree a)
を普通のリストに変換する関数
toList :: Tree a -> [a]
toList (Single a) = [a]
toList (App (Single a) xs) = a:toList xs
toList (App (App xs ys) zs) = toList $ App xs $ App ys zs
この関数の2つ目の式では呼び出しの度に要素数が減ってるけど
でも3つ目の式では要素数が減ってない
でも有限リスト与えた時にちゃんと止まる
じゃあ3つ目の式と2つ目の式でに共通の呼び出し毎に減っているものは何ですか?
整礎帰納法の例で探してもマージソートとか割り算ばっかりで木の平坦化とか全然出てきません
■ このスレッドは過去ログ倉庫に格納されています