Go言語でmap,filter,foldを実装する

引き続きGo言語をなんとなく勉強中です.

スライスとクロージャと再帰を覚えたのでfilter, map, foldr, foldlをGoで関数型プログラミングっぽく書いてみました.

実行→ http://play.golang.org/p/0NwREU1k4f

スライスは普通にリストとして使えるように感じました.リストをheadとtailに分けるのを x, xs := list[0], list[1:] という風に書けるの良いですね.

あとはジェネリクスがあればいいのですが.

参考

http://d.hatena.ne.jp/kazu-yamamoto/20110908/1315473844