tsurushuuの日記

2012-01-08

関数のリストへのmap

01:10

覚え書きです。

リストの全ての要素に対して関数fを適用には、map を使いますが、

逆(?)に、リスト内の全ての要素(関数)に対して特定の値を入力する場合にも、mapが使える。

ただし、mapの第一変数には、関数が必要なので直接特定の値を置くことができない。

そんなとき、($)が使える。ちゃんとドキュメントに書いてある。

map f [0..9] -- 普通のmapの使い方

map (\f -> f x) [f1, f2] -- 丁寧に関数として書くとこうなる
map (\f -> f $ x) [f1, f2]
map (\f -> ($ x) f) [f1, f2]
map ( ($ x) ) [f1, f2]
map ($ x) [f1, f2] -- ここまで書き下せる

Criterionでベンチマークのレポート出力

19:38

ProjectEulerで悩んでいて、どのくらいの時間がかかっているのかの時間計測をしようと思ったのだが、Windowsにはtimeコマンドのような計測コマンドはあまり見つからないし、自分で時間の計測を書くのも億劫だなぁと思っていたら、criterionというのがあったようなので使ってみた。

ただ、「criterionでは、複数のペンチを比較するような用途には使えないよ」ということだったのだが、ヘルプを見てると、どうやら、詳細レポートページの出力が可能になっている模様。

main = do
	defaultMain $
		map (\n -> bench (show n) $ nf hoge n) [50, 100, 200, 500, 1000, 2000]
> main -o test.htm

f:id:tsurushuu:20120108193707p:image

見事なまでの最悪の計算量・・・

IanIan 2013/03/31 21:17 AFAICT you've covered all the bases with this anwser!

ofblxsenllbofblxsenllb 2013/04/04 14:19 Rs3RSp <a href="http://mdakefghgkyh.com/">mdakefghgkyh</a>

xfniryvstxfniryvst 2013/04/04 20:09 ylKRe4 , [url=http://iabdrluirnri.com/]iabdrluirnri[/url], [link=http://dvbvrtvtkfcv.com/]dvbvrtvtkfcv[/link], http://cdvmjoafpozv.com/

ゲスト



トラックバック - http://haskell.g.hatena.ne.jp/tsurushuu/20120108