私は現在、Marijn Haverbekesの優れた本「Eloquent JavaScript」を使用してJavaScriptを学習しています。ここでは、ネストされたリストのn番目の要素を返す再帰関数を記述する必要があるこのエクササイズがあります。そのような要素がない場合、関数はundefined
を返すと想定されます。このソリューションは次のようになります。JavaScript:要素のリストを確認する
function nth(list, n) {
if (!list)
return undefined;
else if (n == 0)
return list.value;
else
return nth(list.rest, n - 1);
}
これまでのところすべてがわかりやすいようです。しかし、私は実際には正確にif (!list) {}
が何を得るかは分かりません。この状態はどのくらい正確に評価されますか? list
の要素がn
の場合はどうしてそうですか?
完全に運動し
は、ここで見つけることができます: http://eloquentjavascript.net/04_data.html#p_7AnSuS26HF
'(もし!リスト)'チェックFrédé[email protected]空のリスト –
うん、リスト枝、それは再帰的にトラバースているため –