以下のページでDartの学習を行っておりますが、Listのfoldについて理解できません。
Dart における高階関数を使ったデータ処理 - プログラマーズ雑記帳 http://yohshiy.blog.fc2.com/blog-entry-285.html?sp
理解できない該当の箇所は以下になります。
1 番最初に呼ばれる場合の初期値を指定する場合に fold を使います。
src = [3, 2, 9, 6];
var leng = src.fold(0, (count, elem) => count+1); // 4
var cons = src.fold("", (str, elem) => str += elem.toString() + ' '); // "3 2 9 6 "
最初の理解では、foldは「隣り合う要素を引数に指定した処理を実行し、その戻り値と次の要素を引数に指定した処理を実行する」ことを再帰的に行う処理だと思っていました。
ですが、それだと「var leng」の結果が4にならないのではと思います。
私の理解では、
- 3と2を引数にcount+1を実行する→4
- 1の結果である4と次の要素である2を引数にcount+1を実行する→5
上記1,2を要素分繰り返し実行する。
おそらく私のfoldに対する解釈に誤りがあると思いますので、どこがどのように間違っているのかご教示いただければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/02/04 08:38