>>171
folder_left f (f a a1) [a2, a3]
になるところまではわかるんだよね?
そしたらまず括弧の中から先に計算するのはどの言語も普通だよね
だから先に(f a a1)の答えが出る
fは引数を2つとる関数だから、答えを出すのに支障はないよね
ここで(f a a1)の計算結果をz1としようか
そしたら上の式は
folder_left f z1 [a2, a3]になるよね?
そうすると、f、z1、[a2, a3]の3つの引数を使って、folder_leftがまた呼び出されるのがわかる?ここが再帰ね
folder_leftの定義は2つあるけど、[a2 a3]は空リスト([])じゃないから、下の
folder_left f a (x:xs)の方が呼ばれるよね?
ここでaはz1、xはa2、xsは [a3]だよね
だからベタで書くと
folder_left f (f z1 a2) [a3]になるよね?
同じように括弧の中が先に計算されるから、(f z1 a2)をz2としようか
そしたら
folder_left f z2 [a3]となる
また全く同じようにfolder_leftを呼び出すと、次は
folder_left f (f z2 a3) []となる
そして同じように(f z2 a3)をz3とすると、
folder_left f z3 []と書ける
ここでまたまたfolder_leftを呼び出してるわけだけど、最後のリストが空リストだよね
だからfolder_leftの2つの定義の内、上の方のfolder_left _ a [] = aが呼ばれる
上から順に呼び出し条件を見てるからね
ここでaはz3のことだから、最終的にz3が答えになる
じゃあz3が何かっていうと、(f z2 a3)だよね。そしてz2が何かっていうと、(f z1 a2)だよね
つまりz3は(f (f z1 a2) a3)のことだ
そして最後にz1は(f a a1)だから、結局
z3 == f (f (f a a1) a2) a3となる
これでどうだ
関数型プログラミング言語Haskell Part32
■ このスレッドは過去ログ倉庫に格納されています
172デフォルトの名無しさん
2019/02/22(金) 20:17:22.94ID:LKaW/yz7■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【米紙報道】高市首相「コングレッショナルフェロー(官職)」経歴詐称疑惑… ★3 [BFU★]
- 【W杯】森保一監督が「首位突破」を厳命!スウェーデン戦は大量得点の圧勝狙う 2位じゃダメなのですか?ダメなのです!! [征夷大将軍★]
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★8 [Ailuropoda melanoleuca★]
- 【芸能】42歳・皆藤愛子「結婚への憧れも、ひとりの時間も大切にしたいのが本音」「まだはっきりとした答えはないが無理なく選んで…」 [冬月記者★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★3 [首都圏の虎★]
- 【クールジャパン】ゲームやアニメなどコンテンツ産業の海外展開支援、政府が司令塔の法人設立へ…日本の「勝ち筋」に官民の叡智結集 [樽悶★]
- 『安倍晋三のなく頃に』の富ヶ谷村でありがちな事件と言えば? [153736977]
- 神戸市の冷蔵庫で死体遺棄した事件
- 【速報】日本の出生数と婚姻数が18年ぶりにプラスに ※
- 大人気女性声優、病院にて本名で呼び出された事を激怒 [245325974]
- 秦谷美鈴「あなたのままでいい」←コイツ
- ダウンタウン+の思い出wwwwwwwwwwww