タグ

by-hiyamaに関するnak2kのブックマーク (20)

  • JSONの可能性がグンと拡がるぞ! JSONスキーマ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JSON(http://www.json.org/)データはけっこうよく使うので、何度か話題にしたことがあります(例えば「もう一度、ちゃんとJSON入門」)。でも、JSONには型情報/メタ情報が付けられないのがとても不満で、JSON改なんてもんを考えたこともありました。(後でXIONに改名) JSONデータに対するスキーマ定義の仕様がかたまりつつあることを、ごく最近になって知りました。 http://json-schema.org/ JSON体はRFC 4627になっていますが、JSONスキーマの標準化のステータスは、あまりハッキリとは分かりません(僕には)。http://groups.google.com/group/json-schema?pli=1 を覗き見した感じでは、現状ワーキングドラフトという位置付けらしいです。 なかなか面白いし役に立ちそうなので紹介します。ただし、僕にとっ

    JSONの可能性がグンと拡がるぞ! JSONスキーマ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • マスロフ式算数がやたらに面白いんですけど - 檜山正幸のキマイラ飼育記 (はてなBlog)

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

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

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

    いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2008/01/09
    reification っていうのか。。。 ここらへんの概念を抑えて、ソフトウェア開発以外の概念にも適用すると世界の構造を外側から俯瞰する感じがして楽しい。
  • ボブ・クックの「物理系実務者のための圏論入門」 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    圏論に関する解説的論文(サーベイ/チュートリアル)で、あまり長くないものというと、次はお勧めです。 題名:A Categorical Manifesto 著者:Joseph A. Goguen 分量:20ページ URL:http://citeseer.ist.psu.edu/goguen91categorical.html 題名:SHORT INTRODUCTION TO ENRICHED CATEGORIES 著者:Francis Borceux, Isar Stubbe 分量:28ページ URL:http://www.win.ua.ac.be/~istubbe/PDF/EnrichedCatsKLUWER.pdf 最近、もう1つ秀逸な記事を見つけました。「幼稚園児のための量子力学」を書いたボブ・クック(↓このニイチャン)*1による「物理系実務者のための圏論入門」(Introducing

    ボブ・クックの「物理系実務者のための圏論入門」 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptで学ぶ・プログラマのためのラムダ計算」は、1回では述べ切らなくて、一段落付いたところで区切りました。これはかえって良かったですね、ブックマークやトラックバックでフィードバックが得られたので。 そのフィードバックなどをかんがみて、「残り=次回の話題」として予告した内容とはい違ってしまうのだけど、今回は、文章では伝わりにくい(前回うまく伝わらなかったと思える)ラムダ計算の大事なツボを、なんとか表現してみようと思います。 [このエントリーの内容はだいぶ前にほぼ出来上がっていたのだけど、ココに書いてある事情で、“お絵描き”がなかなか出来なかったのです。] ※印刷のときはサイドバーが消えます。 内容: 知っていて損はない 計算は身体的に理解しよう ラムダ項のツリー表示:準備 ラムダ項のツリー表示:描く! β変換に対応するツリーの描き換え もっとβ変換をやってみよう 計算現象を

    絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2007/02/20
    機械的にできる、ってとこがミソだよなぁ(たぶん
  • 檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算

    JavaScriptによるテンプレート・モナド、すっげー簡単!」にて: 紙と鉛筆でラムダ計算を実行できることは必要だな、やっぱり。 なんて強調したので、ラムダ計算の入門、いってみよう。 [追記]練習問題集を追加しました。説明を読みながら、あるいは読んだ後で是非やってみてください。→「JavaScriptで学ぶ・プログラマのためのラムダ計算 問題集」[/追記] ※印刷のときはサイドバーが消えます。 内容: JavaScriptの関数リテラル ラムダ式ってなんだ ラムダ計算の体系と適用操作 ラムダ式の例をいくつか β変換 -- ラムダ計算のキモ! β変換を何度か実行してみる 中間まとめ、まだ続きがあるよ JavaScriptの関数リテラル 最初に、JavaScriptに関する知識を確認しておきましょう。なお、JavaScriptの対話的実行環境については「もっともお手軽な対話的JavaScr

    檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算
    nak2k
    nak2k 2007/02/08
    こういうのきちんと理解したほうが無駄なロジック書かなくてすみそう。
  • 檜山正幸のキマイラ飼育記 - JavaScriptによるテンプレート・モナド、すっげー簡単!

    先週書いたエントリー「圏論やモナドが、どうして文書処理やXMLと関係するのですか?」の内容を実際に確認するためのJavaScriptプログラムを書いてみました。 3つの関数を含み、全部で12行のライブラリです。 /* templ-process.js */ function processTemplate(templ, con) { var a = (templ.replace(/\}/g, '{')).split('{'); for (var i = 0; i < a.length; i++) if (i%2 == 1) a[i] = con(a[i]); // コンテキストconは関数 return a.join(''); } function processContext(con1, con2) { return function (k) {return processTemplat

    檜山正幸のキマイラ飼育記 - JavaScriptによるテンプレート・モナド、すっげー簡単!
    nak2k
    nak2k 2007/01/30
    λ計算か……。入門Common Lisp買うかなぁ。
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

    全体目次: 第1歩:しりとりの圏 (このエントリー) 第2歩:行列の圏 第3歩:極端な圏達 第4歩:部分圏 第5歩:変換キューの圏 第6歩:有限変換キューと半圏 第7歩:アミダの圏 第8歩:順序集合の埋め込み表現 第9歩:基に戻って、圏論感覚を養うハナシとか 付録/番外など: 中間付録A:絵を描いてみた 番外:同期/非同期の結合 中間付録B:アミダとブレイド 番外:米田の補題に向けてのオシャベリ 一部のプログラミング言語の背景として、圏論(カテゴリー論)が使われたりするせいか、以前に比べれば多少は圏論に興味を持つ人が増えたような気がしなくもないような。でも、安直な入門的文書はあまり見かけないですね。もちろん、シッカリした教科書や論説はあるんですが、どうもシッカリし過ぎているような。例えば、圏の例として「コンパクト・ハウスドルフ空間と連続写像の圏」とか言われてもねぇ(この例はいい例なんです

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

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

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
  • ジョインポイントとポイントカット - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日に引き続きAOPネタ。 AspectJスタイルのAOPだと、ジョインポイント(join point)とポイントカット(pointcut)っていう概念が重要になります。でも、この用語法(ネーミング)はどうなの? 英語の語感としては自然なのでしょうか? それは僕にはわからないのだけど、個人的には違和感ありまくりです。 ジョインポイントは、主要なプログラムの流れにアドバイスコード(の実行)が“合流する点”という意味なんでしょうが、合流というよりは分岐している、割り込みが入っているという感じです。そして、“ポイント”というけど、実際には時点ではなくて時区間ですよね。フックタイミングとかのほうが僕はイメージ湧くなぁ。 それで、プログラムPに対してジョインポイント(僕ならフックタイミングと呼びたい)の集合JoinPoint(P)が定まるわけです。集合JoinPoint(P)の部分集合が、外延的にみ

    ジョインポイントとポイントカット - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2006/04/04
    ジョインポイント、ポイントカット、アドバイスのイメージの捉え方。パターン・アクション形式でのポイントカットへのアドバイスの指定。
  • もっと型理論 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「今風の型理論入門(編)」で説明したサンプル(ByteInputStream)を雑誌記事でも使ったのですが、いかんせん4ページだからたいしたことは書けませんでした(昨日のエントリー参照)。こっち(日記)はこっちで、もう少し先まで話を進めていくことにします。 「今風の型理論入門」では、"types as specifications" または "types as theories"という立場を紹介しました。この立場では、「型=インターフェース+制約」と考えます。注意しておきますが、これはあくまでひとつの立場です。"types as sets"(型とは値の集合)で十分なこともあるし、"types as algebras"(型とは代数系)が適切なこともあります。 型理論で重要な概念に型階層があります。つまり、サブタイプ/スーパータイプ(この言葉はカタカナ書きします)の関係ですね。"types

    もっと型理論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    前ふりは「型→代数→…それから:型理論入門(の前半)」にあります。これは編(後半)。1回読み切り(長いけど)で、比較的新しい*1型理論を紹介します。「入門(門に入る)」というよりは門の外から中を覗いてみる程度。 説明用コードはJavaの構文を使います。ただし、パッケージ宣言は書かないし、publicはなるべく省略。 内容: インターフェースなんて、所詮こんなもの 心理的効果とか、人間-人間コミュニケーションとかは、別問題 わけわからんインターフェースに制約を付加する もっと制約を足してみる 謎のインターフェースに意図されたもの で、それが型理論にどうつながるの? インターフェースなんて、所詮こんなもの まず、次のインターフェースを見てください。 interface AB { int a(); void b(); } これスゴイでしょ。何がスゴイって、これを見てもなんのことやらサッパリわか

    今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2006/02/20
    インターフェースに制約を付加する、不変制約、ホーア制約。>「型とは、インターフェース+制約だ」とみなすものがあります。
  • オブジェクト系電波文の傾向と対策 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2006-02-03のコメント欄において: nak2k>ここらへん理解した上で色々と議論をしてみたいのですけど、 これは理解できないでしょうよ。 このページだけのスポット読みで、前後や関連部分は一切見てないからアレだけど、これは*電波文にしかみえない*けど。 なんて書いてしまいました。このなかの「ここらへん」「これ」「このページ」とは、nak2kさんのご教示による: http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=18279&forum=25&start=294 さて、nak2kさんはobject氏の発言に何か感じるところがあったのでしょうから、「電波文にしかみえない」と片付けてしまうのは(nak2kさんにも、objectさんにも)失礼に過ぎます。で、このページを猛烈に好意的に読み返してみました。

    オブジェクト系電波文の傾向と対策 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2006/02/06
    うわ~、わざわざ解読していただけた……。お手数おかけして申し訳ないです^^; 後で感想エントリーをお礼代わりに書きます。
  • プログラマのための「ゲーデルの不完全性定理」(1) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「プログラマのためのJavaScript」の番外シリーズ -- いやっ、ホントに。 これはシリーズのハブエントリーです。番号を(0じゃなくて)1にしたのは、全体目次だけじゃなくて内容が含まれるから。 ※ 印刷時にはサイドバーは消えるはずです、お試しください。 シリーズ全体目次(予定) (この記事;総論) 速攻速習編 自己適用からゲーデル化へ 「展望」への緊急パッチ(オハナシだよ) Reflective JavaScript 停止問題の構造 不完全性定理の構造 今回の内容: ゲーデルの不完全性定理とプログラミング ゲーデルが示したこと 不完全性定理の兄弟 -- 停止問題 JavaScript使うんだもんね 関連する記事(参考) 次の記事 速攻速習編 ●ゲーデルの不完全性定理とプログラミング 「ゲーデル」(人名;Kurt Godel、'o'の上に点々が付いてる)や彼の「不完全性定理」とかって、

    プログラマのための「ゲーデルの不完全性定理」(1) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2006/01/05
    なにやら面白そうです。期待しています。
  • イデアルと論理 (0) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    最近元気がないんだか、元気がいいんだかよくわからないid:hubrisさん、「会社辞める」と言ってから学術的なタームが増えた気がする。それらのタームのなかには、そそられるものもある。 つーか、「JavaScript」だ「XML」だと書いていると、なんか理念的な話もしたくなる、ってこともあるのよね。理念的といえば、おー、そうだイデアルだ。ってわけでイデアルの話を。とはいっても、イデアルは単なる狂言回しで、話題は論理(ひょっとして形式言語理論も)あたりです。 とある論理のに、「代数幾何(『代数と幾何』じゃなくて algebraic geometry)が代数式(多項式)で定義された集合を扱うのと同様に、モデル理論は論理式で定義された集合を扱う」てなことが書かれていました。つまり、モデル理論は論理幾何とでもいえるのでしょう。 テクニカルには、代数幾何とモデル理論は全然違うと思うけど、精神において

    イデアルと論理 (0) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    nak2k
    nak2k 2005/11/12
    後で読んで理解……できるといいなぁ
  • [B! cat-theory] m-hiyama-taxonのブックマーク

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

  • 檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)

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

    檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)
  • Chimaira.org

    Chimaira.org Since 2004-12-25 このサイトについて XML 計算科学/ソフトウェア工学 形式言語理論 圏論 その他 総目次(自動生成) 主催者:檜山正幸 (HIYAMA Masayuki) hiyama {AT} chimaira {DOT} org キマイラ飼育記 (ブログ)

  • 1