2017年3月29日水曜日

関数プログラミングの基礎 P67

無限ストリームの例が出ていた。twoStepは任意の関数として、さまざまな無限数列がつくれるということのようです。
var iterate = (init) => {
 return (step) => {
   return [init, (_) => {
     return iterate(step(init))(step);
     }];
    };
   };

   var twoStep = (n) => {
    return n+2;
    };

  var evenStream = iterate(2)(twoStep);
 ただ、ふと、この数列の値はどうやってとりだすのか考えてしまった。
evenStream[1]() 
evenStream[1]()[1]()
evenStream[1]()[1]()[1]()
という具合に、入れ子になった状態のストリームの中身を確かめるしかないのだろうか?
と思っていたら P69にelemAtという要素を求めるために関数が出てきており疑問は解決しました。

0 件のコメント:

コメントを投稿