« JavaScript 再帰関数 | トップページ | Haskell Functor type class »

2011年4月 8日 (金)

javaScript 再帰関数2

Haskellおもしろい。

そしてmap関数。

まー、配列は引数で受け取らず、処理をArray.prototypeのメソッドにしちゃって、this
で受け取るほうが良いのかな?


//a -> [a] -> [a]
function con( v, ary ) {
return [v].concat(ary);
}


//配列の要素それぞれに関数を適用し、新しい配列を返す
//(a -> b) -> [a] -> [b]
function map( f, ary ) {
if( ary.length == 0 ) {
return [];
}else {
var v = ary.shift();

return con( f(v), map(f, ary) );
}
}

var a = [3,2,5,20,4,2];

console.log( map( function( n ){ return n * 2; }, a.slice(0) ) ); //[6,4,10,40,8,4]

|

« JavaScript 再帰関数 | トップページ | Haskell Functor type class »

javaScript」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1049865/39528767

この記事へのトラックバック一覧です: javaScript 再帰関数2:

« JavaScript 再帰関数 | トップページ | Haskell Functor type class »