タグ

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

  • 例外付き計算とグロタンディーク構成 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「1年たって、手書きから自動描画へ」で触れたように、Catyに視覚化機能を入れる作業をチョボチョボとやっています。 Catyの計算モデルはもともとが絵算(pictorial/graphical/diagrammatic calculation)なので、視覚化とはいえ、来の構造を目に見えるようにすればいいだけです(描画のコツは色々必要ですが)。 Catyは、大域脱出や副作用のような不純な計算もサポートしているので、不純計算の視覚化(図示、描画)をどうしようか? という問題があります。結論を言えば、ほとんど省略して描かない方針です。あまり精密に視覚化すると、グラフのノードや辺の数が膨大になってかえってワケわかんなくなる恐れがあるからです。 とはいえ、特定の種類の不純計算を局所的に描くのは有効かもしれません。ここでは、例外を含む計算の描画法と、それに対応する圏論的なモデルを紹介します。計算モデ

    例外付き計算とグロタンディーク構成 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    久々にThe n-Category Cafeを見たら、Mike Stayによる"The Continuation Passing Transform and the Yoneda Embedding"なんて記事がありました。 米田埋め込みは圏論ではお馴染み。継続渡しへの変換はコンピュータ・プログラミングではお馴染み。 この2つは、実は同じものなんだよ。なんで、誰もこのことを言わないんだろうね? The Yoneda embedding is familiar in category theory. The continuation passing transform is familiar in computer programming. They're the same thing! Why doesn't anyone ever say so? Mike Stayのこの記事、面白いのだ

    CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 無理して(圏論的)モナドをJavaで説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    どうも関数型の風(微風かな?)が吹き始めているようです(「技術者の技術教養は変化するのか(しないのか)」参照)。とはいえ、ほとんどの現場で実際に使われているプログラミング言語はせいぜいオブジェクト指向と称するものです。そんな状況ですから、中途半端な過渡的方便としては、“バカバカしくめんどくさい”記述になるのを承知で、現場的言語でファンクショナルな、いやもう一声、カテゴリカルな概念を説明するのも無意味ではないかもしれません(とか言ってみたが、単に興味位で実は無意味だろう、ダハハハハ)。 Listモナド それで今日の話題は、Listなんです。型パラメータXを付けたList<X>の形のものね。これは、「型Xを渡すと新たな型を創り出す機能」ですから、「型に型を対応させる関数」ともいえます。 このList<X>は、単に「型→型」対応を与えるだけでなく、独特の(しかし普遍性もある)構造と法則性を持

    無理して(圏論的)モナドをJavaで説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • モナドの定義とか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    モナド関係で、KMさんと酒井さんにコメントをいただいて、僕もコメント欄に書き込みました。話が少しややこしくなったので、このエントリーで続きを。 コメント欄のやりとりで分かったことは、“Haskellのモナド”がモナドもどきではなくて、どうも、正真正銘の圏論的モナドであるらしいことです。であれば、Haskell知らずの僕が語ってもまー大丈夫かな、と。(メモ編に書くべき内容かもしれないけど。) Listは典型的モナドに思えないかも知れない 「Listモナドは典型的モナドだ」と僕は書いたのだけど、Haskellのヒトには違和感あるかもしれないですね -- Listはたいていのプログラミング言語でサポートされている平凡なデータ構造ですから。状態遷移とか入出力のような副作用を表現するモナドのほうが“モナドらしい”のでしょう、おそらく(憶測モード)。そうであってもなお、Listがやっぱり典型例なのは事

    モナドの定義とか - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 「モナド入門」への補足とか応答とか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の「モナド入門」、一晩のあいだにブックマーク数が70近くまで。タイトルでウケたのかしらね? しかしそれにしても、モナドなんかに(って語弊があるな)興味を持つ人がたくさんいるってのは驚きです。技術者の技術教養がほんとに変化しているのかな? それはともかく、ブックマーク・コメントに応える形で、補足をしておきます。 sshiさん:結論の三つ組とhaskellのモナドの対応がよくわからず。 [後日変更 date="20050421"]トラックバックいただいたnanakosoさんのエントリ(http://www3.atwiki.jp/nanakoso/pages/15.html)が、この問題を扱っています。当該エントリーの2回前から順に読むと、extの対応物を求めてラムダの森をさまよい歩く物語として読めます。(=<<)に出会った場面に僕も感動しました。[/後日変更] コメント欄でKMさんにご教

    「モナド入門」への補足とか応答とか - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • さらに「モナド入門」に補足:記号だの図だの - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「モナドの定義とか」への追記で書こうかと思ったけど、ちょっと長いからエントリー起こします。 まず、「Kleisliトリプルの拡張オペレータ(extension; 僕はextと書いた)のHaskellでの対応物」の件は、nanakosoさんが“彷徨の末に落ち着いた経緯”を報告なさっているので、http://www3.atwiki.jp/nanakoso/pages/16.htmlをご参照ください。「>>=」と左右逆の形状の記号「=<<」で表現される高階関数は、完全にextと一致します。 右向きの矢印に見える「>>=」のほうは、右側オペランドだけをfixした状態(>>=f)がext(f)になりますが、その形状(左から右に向かう)の印象から、a >>= f で「引数aをfの拡張に送る/渡す」と読むのが心理的に自然な気がします(あくまで印象論ですが)。左から右へと書けることが>>=の重要な点かと思

    さらに「モナド入門」に補足:記号だの図だの - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)

    ジジイの手習いで、JavaScriptを勉強中でございます。その動機は「結局、ブラウザベースRIAかよ」のようなこと。非ブラウザベースのリッチクライアントへの期待を失ってしまったんですね。短期的・現実的な策としては、Ajax的な手法によるRIAなのかなぁ、という気分。ただし、「短期的」が“1年”と“5年”ではえらい違いです。今のところ僕には、「短期的」の実際の期間はわかりません。 僕のJavaScript調査の結果は、「初心者でも使えてプログラマでも困惑するJavaScript 」などに書きました。これらの続きとして、「プログラマのためのJavaScript (*)」というタイトルで書こうかと予定してます。あくまで予定、気まぐれでモノグサな僕のことだから、…… “プログラマのための”というのは、C, C++, Java, C#など“普通の”プログラミング言語にある程度慣れていることを前提に

    檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
    oto-oto-oto
    oto-oto-oto 2006/04/20
    分かったような気にさせてくれた。
  • 1