タグ

ブックマーク / qiita.com/nishimura (2)

  • MacでHaskellを使ってJavaScriptをビルドする環境(GHCJS)を最短で整える(長い) - Qiita

    はじめに 先日、Elmを試したけどあまり合わなかった。 HTMLをプログラムで生成せずに昔ながらのやり方でファイルに書きたい。それでいて型指定も欲しい。 なのでGHCJSを試した。 GHCJSはElmのような新しい言語があるのではなく、Haskellのコンパイラ出力をJavaScriptに差し替えるというなかなか凄いやり方。Haskellの機能がほとんどそのまま使えて、更にDOMの機能も仕様の定義から自動生成されている。 自動生成なので ByteLengthQueuingStrategy のようなマイナー(?)なクラスにも対応するHaskellの関数があったりする。 つまり機能不足で困ることはほとんど無いと予想できる。 その代わりに提供されているのは素のJavaScriptのHaskell版というようなものなので、追加で miso のようなフレームワークを使った方が開発速度は速いと思う。

    MacでHaskellを使ってJavaScriptをビルドする環境(GHCJS)を最短で整える(長い) - Qiita
  • PHPで関数の末尾呼び出しを最適化する - Qiita

    末尾呼び出し最適化とは、関数の呼び出しをjump命令に書き換えることによる最適化のこと。 通常の関数呼び出しはreturnで呼び出し元の位置に帰ってくる必要がある。 しかし例えば <?php function multi($a, $b){ return $a * $b; } function plus($a, $b){ return $a + $b; } function calc($op, $b, $c){ if ($op === '+') return plus($b, $c); else if ($op === '*') return multi($b, $c); else return 0; } var_dump(calc('*', 3, 5)); // int(15) この calc という関数から plus や multi という呼び出しにおいて、calc に戻ってくる必要はな

    PHPで関数の末尾呼び出しを最適化する - Qiita
    igrep
    igrep 2016/07/10
    自分で最適化しちゃったのかw
  • 1