タグ

ブックマーク / reinyannyan.hatenadiary.org (3)

  • (new Hatena).blog()

    聴きたいradikoの番組を聴き逃さないために、時間になったら自動的に番組を再生してくれるプログラムを作ってみました。 再生にはブラウザを使用するので、Schemeで番組表APIを叩いて検索、番組データをJSON化してブラウザに渡す、という流れになります。 ブラウザとSchemeの通信に関して、JSONPを使うかどうか悩んだんですが、Racket(PLT Scheme)のテンプレート・システムでHTMLデータを生成する方法を選びました。 メイン関数 (fun (radiko info) (aand (filter-map (find-progs info) ((sxpath '(radiko stations station)) (timetable))) (progs.json it) (serve it)))(radiko '((pfm "山里亮太")))のように呼び出します。pfm(

    (new Hatena).blog()
    mooz
    mooz 2010/12/16
    Schemer, JavaScripter
  • なぜ JavaScripter が Schemer になったか - (new Hatena).blog()

    以前は JavaScript のことばかり書いていたのが信じられないくらい、Scheme のことばかり書いていることについての説明文です。 ホップ 当ダイアリーのタイトルからもお分かりかもしれませんが、私は元々 JavaScript について書きたくなって、ブログというものを始めました (ついでに言うと、はてなのアカウントを取った時点ではそんなつもりは1ミリも有りませんでした)。 ちょうど世界的に JavaScript の真価が理解されるようになった時期でもあり、個人的には Ruby のクラス・システムを JavaScript で模倣するというテーマに興味を持って色々と実験をしたものです。 それから、LDR との出会いという大きな経験もありました。プログラムの世界に深く沈潜するようなリーディング体験をしたのは、この時が初めてだったかもしれません。それまで考えもしなかったような発想や技術に溢

    なぜ JavaScripter が Schemer になったか - (new Hatena).blog()
    mooz
    mooz 2010/12/16
  • 部分継続について本気出して考えてみた - (new Hatena).blog()

    以前何度か部分継続について書いたことがあるんですが、当時は表面的な振る舞いを観察して何となく分かった気になった程度の拙い説明しか出来ませんでした。 その上、最近のプログラミングでもほとんど活用しておらず、改めて理解し直す必要を感じてきた次第です。 そこで今回は、部分継続の概念的な理解を目指し、基礎的な事柄を中心にまとめていきたいと思います。 基的に PLT Scheme (MzScheme) の評価モデルに即して書いていくため、Scheme 一般に当てはまる話になっていない部分もあるかも知れません。その点ご了承ください。 Redex と継続 Scheme の評価モデルにおいて、 (+ 1 (+ 2 0))という式を評価するとき、まず (+ 2 0)の部分が評価され、その結果の値に対して (+ 1 [])という残りの計算が行われます。 ここで角括弧で示した部分を reducible exp

    部分継続について本気出して考えてみた - (new Hatena).blog()
    mooz
    mooz 2010/12/16
    脱出の起こる continuation, 脱出の起こらない composable continuation.
  • 1