関数型言語ML (SML, OCaml, etc.), Part 6
■ このスレッドは過去ログ倉庫に格納されています
0029デフォルトの名無しさん
2009/06/20(土) 16:54:49match list with
[] -> 0
| x::rest -> 1 + length rest;;
このリストの長さを返す再帰関数の動きなんですが、下へ展開していって
ループが終了したら、上に値が戻ってくるイメージでOKですか?
length [2; 1; 3] = match [2; 1; 3] with
| 2 :: [1; 3] -> 1 +
length [1; 3] = match [1; 3] with
| 1 :: [3] -> 1 +
length [3] = match [3] with
| 3 :: [] -> 1 +
length [] = match [] with
[] -> 0
1 + 0
1 + 1
1 + 2
length [2; 1; 3] = 3
■ このスレッドは過去ログ倉庫に格納されています