タグ

ブックマーク / ympbyc.hatenablog.com (5)

  • sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m

    Stop Writing JavaScript Compilers! Make Macros Insteadを読んで、sweet.jsを使ってみた。 解決したい事 JavaScriptでは非同期処理が多いので、継続渡しスタイルのコードばっかりになるのだけど、みんなこれをcallback hellとかpyramid of doomとか呼んで嫌っている。 そこでプロミスとかフューチャっていうのが使われるようになった。プロミスを使う利点は結果が出ていない状態をファーストクラスな値として使える事だと思う。ネストはなくなるけど、結局文法の支援がないからpromise.then(function () {...})みたいに、限定継続渡し的なことはしなくちゃいけない。 継続渡し形式が嫌ならcall/ccとかshift/resetを導入したらいいんじゃないかとはずっと思っていた。そこで今日は、sweet.

    sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
  • 化ける!S式 - 標高+1m

    (この記事はLisp Advent Calendar 13日目のためのエントリです。) こんにちは!冬休みに日に帰るときに経由しているロサンゼルスの空港で書いています。アメリカ時間ではまだ13日ということで遅刻していないと言い張らせてください。 Lispアドベントカレンダーに参加するのは今回が始めてです。S式が大好きなのでS式についてつらつらと書いて行きます。 Carrot この記事では、Carrotという、架空のLisp風言語の処理系を仮定します。 Carrotでは以下の文法が使われることとします。 ;;;アトム 数値、文字、文字列、シンボル、etc ;;;関数適用 (f x) ;;;関数定義 (= name param ... expr) ;;例: (= add x y (+ x y)) ;;;無名関数 (^ param ... expr) ;;例: (^ x y (+ x y))

    化ける!S式 - 標高+1m
    xef
    xef 2013/12/14
  • Meteorすごい - 標高+1m

    みなさんこんにちは。 最近僕のfeedlyにMeteorの記事がいくつか流れてきたので、気になって使ってみました。 MeteorはJavaScriptのフルスタックWebフレームワークです。 詳しい説明はこちらの連載がわかりやすかったです。 体感!JavaScriptで超速アプリケーション開発 -Meteor完全解説:連載|gihyo.jp … 技術評論社 僕が感動した点だけ書きます。 プラグイン サードパーティのライブラリはnpmのものも使えるようですが、Meteor用のプラグインがいくつか用意されています。 プラグインはとても親切で、例えばmeteor add coffeescriptとかすればその時からコードの結合、サーバの再起動、ブラウザリフレッシュのフローに.coffeeファイルのコンパイルを挟んでくれます。 他にも、twitter、facebook、googlegithub

    Meteorすごい - 標高+1m
  • OOP is a Dead-end - 標高+1m

    まとめた。 Leave the Sinking Ship

    OOP is a Dead-end - 標高+1m
  • webfuiが面白い - 標高+1m

    Land of Lispの作者が作っているClojureScriptのフレームワーク、WebFUIが面白い。僕がJS書くときによく使うPastaとよく似ているので盗めるところは盗みたい。 Clojure/conjでの動画 githubリポジトリ 状態 イミュータブルな辞書で状態を表現して、リファレンスを張り替えることで状態の遷移を行うところはPastaと共通。この方法はよくあるオブジェクト指向のMVCフレームワークで行われるミュータブルな辞書をその場で書き換える方法と比べて、 後で必要になるデータをcloneなしで取っておける.(もちろん必要ない物はGCされる) 同じ状態の時に必ず同じUIになることを保証できる. (上記に関連して、)アプリの状態をそのままサーバなりローカルストレージなりに突っ込んで、そこからUIを含め完全に状態を復元できる などの利点がある。 状態の辞書を作るのにパッチ(

    webfuiが面白い - 標高+1m
  • 1