お題: Map を Mapに変換するメソッドを作るという話題。 Mapの置換にみるジェネリクス表現 - プログラマーの脳みそ 元の話はJavaなんだけどScalaではできるかどうかやってみた。 バージョンはScala 2.11.2
![記事一覧 - terazzoの日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)
実践Scala読んでたら継続モナドのこと理解出来そうな気がして来たので実装してみた。Javaで。 やれそうな気がする時は、やれる! この辺がとても参考になった。 Haskellの継続モナド(Continuation Monad)を理解するポイント - よくわかりません howm wiki - モナド 簡単な説明 上のサイトにある説明、 継続といいつつ、Contが表すのは継続というより、CPSな関数。 これでようやく何をする機能なのか分かった。モナドというのは、基本的に何かを包んで、それによって合成したり後から利用したりを可能にするものなんだけど、継続モナドの場合、包まれている「何か」は、CPS(継続渡し形式)で書かれた関数ということだ。 いきなり高度なサンプルしか無いのが分かりにくい点だと思うので、簡単な具体例を使いながら実装を考えていくよ。 継続渡し形式とは (※前に書いた「内部イテレー
お題: 複数個の関数があって、関数を呼び出した結果を使って関数を呼び出して…っていうのを1個の関数にします。 JavaScriptでの非同期関数合成 - monjudoh’s diary 関数の形を見てみます。 // 1を足す function add1(callback,arg){ callback(arg+1); } コールバック関数を渡して、戻り値ではなくコールバック関数を呼び出してもらう事で結果を取得する……これって「CPS(継続渡し形式)」!CPSなら分かるわ!(本当か?) 参考にしたサイト: http://www.h4.dion.ne.jp/~unkai/js/js12.html http://practical-scheme.net/docs/cont-j.html JSDeferredで考えるモナド - JavaScriptで遊ぶよ - g:javascript Haske
Javaの最適化の議論で「インライン展開」「エスケープアナリシス」などの用語が出てきていて、気になって調べたところ、java実行時のオプションで最適化の方法を指定したり実行過程を表示したり出来るらしい。 主なオプションについて Java HotSpot VM Optionsにパフォーマンスに影響しそうなHotSpot VMのオプションが説明されている。 例: オプション 効果 -XX:+PrintCompilation メソッドがコンパイルされた際にメッセージを表示 -XX:+UseBiasedLocking Biased Lockingを使用する -XX:+OptimizeStringConcat 可能なら文字列の連結操作の最適化を行う -XX:+AggressiveOpts 将来のリリースでデフォルトになりそうな最適化フラグを有効にする ... ... たとえばjava起動時に-XX:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く