タグ

ブックマーク / m-hiyama.hatenablog.com (11)

  • EmacsでJavaScriptソースを快適に読むために:js2-modeとエグズーベラントCtags - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「横道にそれすぎ」に書いた事情で、EmacsでJavaScriptソースコードを読む環境を少し整えようかと。 次の2つのツールを導入してみよう、っと。 js2-mode: http://code.google.com/p/js2-mode/ エグズーベラント(EXUBERANT)Ctags: http://ctags.sourceforge.net/ 内容: より良いEmacs JavaScriptモード -- js2-mode 強烈なタグファイル作成ツール -- エグズーベラントCtags エグズーベラントCtagsを調べてみる EmacsでJavaScriptソースを読む ●より良いEmacs JavaScriptモード -- js2-mode 以前(2006年7月)、ひげぽんさんの記事で、「ecmascript-mode.el < javascript.el みたいだ」と書いてあった

    EmacsでJavaScriptソースを快適に読むために:js2-modeとエグズーベラントCtags - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • クロージャとラムダ式は同義だ、と主張してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    だいぶ前に、クロージャ(閉包)って言葉の意味がわからないと書いたことがあります(「クロージャ、それなに?」)。最近また「クロージャ」って言葉を聞いたのですが、やっぱり何を意味しているのかわかんなくて(詮索する余裕もなくて)落ち着かない気分になりました。これはどうも精神衛生上よくない。 「クロージャ」と「ラムダ式」はまったく同義に扱ってもいいんじゃないのかな。例えばラムダ式 λx.(a*x + b) があるとき、自由変数a, bを具体化するための環境(変数束縛)をラムダ式と一緒にした (λx.(a*x + b), {a : 2, b : 1}) が古典的な意味のクロージャでしょ、たぶん。letを使えば、(let a = 2 b = 1; λx.(a*x + b)) みたく書けるけど、これも結局 (λa.λb.(λx.(a*x + b)))(2)(1) だから1個のラムダ式ですよね。 「クロー

    クロージャとラムダ式は同義だ、と主張してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2009/07/04
  • セミナー非参加者にもわかるリアルワールド向けラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    セミナーをやって良い点でもあり辛い点でもあるのは、終わった後で 「こういう説明ならもっと分かりやすかったのでは」 「あーいう順序で話すほうが合理的だった」 「あそこは省略すべきだった」 「駄洒落がスベッた」 「せっかく考えていたギャグを言い忘れた」 などなど、反省つうか後悔が、夏場(今、冬だけど)の入道雲のように湧き湧きしてくることです。 人(檜山)はかなり強調しているつもりでも、それでもハッキリとは伝わらない事項がいくつかあったようです -- 別な機会(セミナー第1回も含め)で、檜山が何にこだわっているかを承知していれば話は別かもしれませんが。まーともかく、可能な限りアフターフォローします。 エントリーは、「技術者/プログラマのためのラムダ計算、論理、圏」セミナーとなるべく独立に読めるようにしたつもりですが、次の資料をザッと眺めたほうがいいとは思います。 http://www.chi

    セミナー非参加者にもわかるリアルワールド向けラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2009/02/22
  • イプシロン計算ってなんですかぁ? こんなもんですよぉ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ラムダ計算は、計算モデルとしてだけでなく、手計算の実際的手段としても役立ちます。しかし、通常使われる各種変換(アルファ、ベータ、イータ、デルタ)ではうまく計算が進まないときがあります。例えば、gがfの逆関数のとき、f(g(y)) は y に簡約されるのだけど、f(g(y)) ⇒ y って簡約規則は通常のラムダ計算ではうまく定式化できません(いや、できるかもしれませんが、僕にはうまい方法が思いつきません)。 そこで、ラムダ計算に加えてイプシロン計算も使うとよさそうです。でも、イプシロン計算は、ラムダ計算ほどにポピュラーではないですね。簡単な例でイプシロン計算を紹介しましょう。 内容: イプシロン記号とイプシロン項 イプシロン項の意味 イプシロン項が定義する関数 例題:gがfの断面(セクション)であること イプシロン記号とイプシロン項 負の数-1とか、無理数√2とかを導入するとき、次のような定

    イプシロン計算ってなんですかぁ? こんなもんですよぉ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/07/30
  • プログラミング言語Makeの関数型フラグメント:まとめとサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    一時Makefileに凝っていました。Makefileの記述構文のなかに、「Lispに似た小さな関数型言語が埋め込まれているんだ」とか言ってましたよね。あれはまー、遊び半分なんだけど、このテの知識は、実際にMakefileを読み書きするときにも役にたちます。 過去のMakefile関係エントリーを読み返そうと思ったら、けっこう量があるし、紆余曲折があるんで、ここに整理してまとめておこうと思います。 内容: 参考資料 概念と用語 データ型 変数 関数 制御構造 画面出力と強制終了 ●参考資料 Makefileに関しては、次のエントリー群でゴタゴタと説明しています。 Makefileの書き方、その勘どころ Makefileの書き方:プログラミング言語Make プログラミング言語Make 補遺:引数付きの関数 Make 補遺の補遺:遊んでいるだけ Make言語で算術演算 <-- バカ! もっとも

    プログラミング言語Makeの関数型フラグメント:まとめとサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/07/17
  • 可逆計算が面白いから、JavaScriptで書いてみた - 檜山正幸のキマイラ飼育記 (はてなBlog)

    グリーンとアルテンキルヒ(Alexander S. Green, Thorsten Altenkirch)の「可逆計算から不可逆計算へ(From reversible to irreversible computation)」という10ページの短い論文があります。タイトルのとおり、可逆計算から不可逆計算が出るよ、ってハナシがこの論文の眼目なんですが、可逆計算の部分(前半)が面白かったので紹介します。 何が面白いかというと、可逆計算だと古典計算も量子計算も差がないのですよ。同じ定式化を許します。古典計算において可逆計算に慣れておくことは量子計算へのよい準備になると思います。とか言っても、今回は難しい話は全部すっ飛ばして、JavaScriptの関数をいくつか書いてみるだけですがね。 このエントリーを書こうとしてJavaScriptでミスを犯した顛末は「JavaScriptでハマった件:さすがに

    可逆計算が面白いから、JavaScriptで書いてみた - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/07/02
  • 誰が言ったかによって命題の真偽を判断するのは非論理的なのか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    なんばさんの記事を読んで、話の筋とは関係ないのだけど、興味を引かれたことがあったので書いておきます。 Aさんがpと主張した。 pは正しいだろう、だってAさんが言ったことだもの。 Bさんがqと主張した。 qは正しくないだろう、だってBさんが言ったことだもの。 と、以上のような判断は論理的かどうか? って話ね。「非論理的に決まってるじゃん」 -- そうなのかな? 内容: モーダスポネンス 命題とメタ命題 発言者で修飾された命題 Aさんが言うのだから正しい 「『Aさんが言うのだから正しい』は論理的にまったく正しくない」は正しくない モーダスポネンス 3,4歳の子が「木が葉をゆらすから、風がふくのね」と言った; そんな話を聞いて「なんて可愛らしいだろう」と思いますよね。それと同時に、人間の観測と抽象(法則抽出)能力はたいしたもんだな、とも思います。因果関係は逆転してます*1が、「木が葉をゆらす」

    誰が言ったかによって命題の真偽を判断するのは非論理的なのか - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/05/19
    演繹と帰納がごちゃ混ぜになってるようでなんか変な感じ。意図的なのかな。
  • grepコマンドとEmacs grepモードって、やっぱり便利だよな - 檜山正幸のキマイラ飼育記 (はてなBlog)

    grepコマンド、それとEmacsのM-x grepとgrepモードって、かなり便利ですよ。プログラミング以外の用途でもいろいろ使えます。 WindowsでもUnix系OSでもほとんど同じですが、差がある部分は括弧内に示します。 例題の説明 僕は、はてなダイアリーをブラウザから直接書くことはあまりなくて、前もってテキストエディタで書いたものを貼り付けています(これは事実)。各分類カテゴリごとにファイルを分けて、hatena-nitijo.txt, hatena-zakki.txt, hatena-memo.txtとなっているとしましょう(事実じゃない、あまり整理してない ^^;)。 はてな記法では、行頭に「*」があるとエントリータイトルなので、次のコマンドで全エントリータイトルを列挙できます(Unix系では、ダブルクォートの代わりにシングルクォートを使用してください)。 grep "^\*

    grepコマンドとEmacs grepモードって、やっぱり便利だよな - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/05/14
  • ホッピングボール:書きはじめよう、ゆるゆると - 檜山正幸のキマイラ飼育記 (はてなBlog)

    状態遷移マシンは、計算機構のモデルとして有名なものだし重要ですよね。僕が「ホッピングボール・マシン」と名付けた(適切な名前が見あたらなかったので)モデルは、とても単純な状態遷移マシンです。これ以上の単純化は難しいというくらい単純です。 この単純なモデルであるホッピングボール・マシンは、プログラム意味論はもとより、圏論、論理、グラフ理論などの立場からも興味深い素材で、この素材を使って次のようなことを説明できます。 振る舞い意味論 模倣/双模倣 モノイド圏 高次圏 計算現象と物理現象のアナロジー 一般化された行列計算 僕が「面白いなー」と思っていることはだいたい、ホッピングボール・マシンを例題として解説できそうです。以前から、ホッピングボール・マシンとその周辺について書きたいとは思っていたのです。でも、なかなか書き出せないでいました。 ホッピングボール・マシン自体は単純なんですが、背後に非常に

    ホッピングボール:書きはじめよう、ゆるゆると - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/05/07
    もちろん続きが気になりますとも!
  • マスロフ式算数がやたらに面白いんですけど - 檜山正幸のキマイラ飼育記 (はてなBlog)

    インド式算数って、速算処方箋の寄せ集めでしょ。ロシア発のマスロフ式算数は、質的に新しい演算を扱う奧が深い算数ですよ。マスロフ式算数を学んでも速算の役には立たないけど、背後にある数理的構造/現象の神秘に触れられるかもよ。 内容: マスロフ式算数の由来 maxとminの算数 足し算的演算 足し算的演算の実例 マスロフ和 マスロフ和の極限 プランク定数と脱量子化 マスロフ式算数の由来 1980年代に、ロシアの物理学者マソロフ(Victor P. Maslov)により始められた脱量子化(Maslov Dequantization)という手法があり、現在では、数学、物理学、工学の広い範囲に影響を与えてます。マソロフ脱量子化の入り口は、変形した足し算を含む計算です。この計算は、普通の算数と同じ簡単な法則に従いますが、エキゾチックな世界を記述する道具になります。 このエキゾチックな算数の構造は、高校生

    マスロフ式算数がやたらに面白いんですけど - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/01/21
  • いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な

    いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    papamitra
    papamitra 2008/01/12
    rubyのクラスの輪が理解できた(気になった)
  • 1