JavaScript 関数型プログラミング ストリーム

投稿者: | 2017年4月1日

ストリームの値の移り変わり

 

/**
 * Created by devel on 2017/04/01.
 */
var expect = require('expect.js');


var succ = (n)=>{
    return n + 1
}
var enumFrom =(n)=>{
    return [n, (_)=>{
            return enumFrom(succ(n))
        }]
}
a = enumFrom(1) // nに1を代入

console.log(a)                   // [ 1, [Function] ]
console.log(a[0])                // 1
console.log('') 
console.log(a[1]())              // [ 2, [Function] ]
console.log(a[1]()[0])           // 2
console.log('')
console.log(a[1]()[1]())         // [ 3, [Function] ]
console.log(a[1]()[1]()[0])      // 3
console.log('')
console.log(a[1]()[1]()[1]())    // [ 4, [Function] ]
console.log(a[1]()[1]()[1]()[0]) // 4

 

 

 

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください