関数型プログラミング言語Haskell Part28 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0127デフォルトの名無しさん
2016/02/24(水) 02:04:52.29ID:+WgOrOxzfn [] = [[]]
fn (x:xs) = map (x:) $ [] : fn xs
で書ける。要するに
fn [0, 1, 2, 3] = [ [0], [0,1], [0,1,2], [0,1,2,3] ]
を
fn [1, 2, 3] = [ [1], [1,2], [1,2,3] ]
から作る方法がわかればこの関数は素直な再帰で書けるわけ。
で、それには後者の頭に空リストを足して [ [ ], [1], [1,2], [1,2,3] ] を作り、
これの各要素の頭に 0 をくっつければいいわけだ。
この操作を一般的に書けば上の定義の2行めになる。
■ このスレッドは過去ログ倉庫に格納されています