タグ

Mathに関するnozomのブックマーク (74)

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

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

    無理して(圏論的)モナドをJavaで説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラマのための述語論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    たまにやっている「プログラマのための××○○」モノでがんす。これは一回読み切り。 表題どおり、述語論理の入り口を説明する目的があります。それと、ラムダ式もクロージャも高階の型/関数もないようなプログラミング言語(具体例にはJavaを使いますが)で、述語論理のような形式体系をどの程度表現できるかを試してみるのが、もうひとつの目的。それで、「やっぱりJavaみたいな言語はダメだ」と思うか、「けっこう、なんとかなるもんだ」と思うか、… さー、どちらでしょう。 [追記]変なJavaのコードでワケワカになってしまうときは、「述語論理はJavaScripを使うべきだった」のJavaScriptコードを参照してください(面倒で、すみません)。[/追記] ※長いよ。印刷の時はサイドバー消えます。 内容: 最初に命題論理を一瞥<いちべつ> 述語とは 述語の論理計算 これが述語論理のキモ:限量子 限量子のプロ

    プログラマのための述語論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 述語論理はJavaScriptを使うべきだった - 檜山正幸のキマイラ飼育記 (はてなBlog)

    あー、失敗。「プログラマのための述語論理」は、説明にJavaScriptを使うべきだった(「みにくいアヒルの子 -- コンピューティング・サイエンスとJavaScript」も参照)。技巧的なJavaコードじゃ、分かるものも分からなくなる。 手遅れだろうけど、JavaScriptで書き直し。 述語の例 function positive(n) { return n > 0; } function zero(n) { return n === 0; } function empty(s) { return s === ""; } 述語論理の演算 function and(p, q) { return function(x) { return p.call(null, x) && q.call(null, x); }; } function or(p, q) { return function(

    述語論理はJavaScriptを使うべきだった - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • OBB vs AABB - Radium Software Development

    Domain for sale radiumsoftware.com Free transaction support Secure payments Spaceship reliability Listed with spaceship.com

    nozom
    nozom 2006/03/24
  • C/C++のvoidってのは何だろね - 檜山正幸のキマイラ飼育記 (はてなBlog)

    プログラミング言語の重箱の隅をつつくシリーズ(って、そんなシリーズねーよ)。 ※ひとつ前が、あんまり僕らしくもない(と僕自身が感じる)エントリーだったのでコレ追加しよう、っと。 少し前に、無値(値がないということ)を話題にしました。その後、C/C++のvoidってのは、単に無値を意味するだけではないことに気付いたので書いておきます。 まず、voidの解釈として、値の集合が空集合と、値の集合が単元集合(singleton set)がありますが、空集合はちょっと変で単元集合が良かろうって言いました。それで、voidは単元集合(ただし、そのメンバーが何であるかは重要ではない)だと理解します。 さて、void *p;って書いてあるとき、pが指す先に“voidの値”があるってわけではありません。なにか未知のモノがあるという意味です。気分としては、Any *p;です。pが指す先に置いてあるデータの可能

    C/C++のvoidってのは何だろね - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラマのための「ゲーデルの不完全性定理」(4):「展望」への緊急パッチ(オハナシだよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    yoriyukiさんとの一連のやりとりで、「プログラマのための『ゲーデルの不完全性定理』」シリーズ第2回「速攻速習編」の「ゲーデルの不完全性定理への(ほんの少し)展望」に問題があると判明しました。その問題とは主に次の2点です。 あまりにも説明をはしょっている。そのため、誤解・誤読のリスクが高い。 「ゲーデル」という、歴史上実在の人物を表す固有名詞の使い方が間違っている。 1番目に関しては、ていねいな説明を書く以外の対策がなく、手短な展望としてはいかんともしがたいです。ただし、ある程度の予備知識を仮定してよいなら、次が補足説明になっています。 プログラマのための「ゲーデルの不完全性定理」番外:「デタラメだ」と言われたので… - 檜山正幸のキマイラ飼育記 Yoriyukiさんへの返答:内容的なコメント編 - 檜山正幸のキマイラ飼育記 メモ編 不完全性定理シリーズの背景とシナリオ - 檜山正幸の

    プログラマのための「ゲーデルの不完全性定理」(4):「展望」への緊急パッチ(オハナシだよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)

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

    今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 「形式的」とは何だろう

    「形式的手法」、「形式言語」、「形式的体系」などの言葉には、「形式 (的)」という形容詞が登場する。この「形式的」とはどういうことなのだろ うか。主に、形式的体系について解説することによって、形式的な発想に慣れ るキッカケを提供したい。 1. はじめに このキマイラ・サイトや他のところの記事で僕が扱っている話題には、形式 的手法、形式言語、形式的体系など、「形式(的);formal」という形容詞が つくものが多い。同じ「形式的」という言葉でも、使われる文脈で異なる意味 あいがあるのだが、まー、共通する面もあるね。この記事では特に、「『形式 的体系』における『形式的』」について取り上げてみる。「形式的(なもの)」 に対する嫌悪感やアレルギーを取り除ければいいな、というのが僕の希望であ る。 この記事から他の記事への参照はあるが、それらの参照をたどらなくても、 この記事単独でも読める。また、他

    nozom
    nozom 2006/01/27
  • quinta essentia - PS版 serial experiments lain

    ジャムを常備するならあんずジャムで! カツカレーを作ったら、うま過ぎるとうちの男性陣が騒いだ。落ち着けボーイズ!これは市販のゴールデンカレー(甘口)のルーだ。手を抜いたつもりがルーから手作りのカツカレーよりも数倍の喜びように、家庭料理の面白さともどかしさを感じた。 隠し味のあんずジャム …

    quinta essentia - PS版 serial experiments lain
    nozom
    nozom 2005/11/09
  • Amazon.co.jp

  • これなら分かる最適化数学―基礎原理から計算手法まで

    Amazonはお客様のセキュリティとプライバシーの保護に全力で取り組んでいます。Amazonの支払いセキュリティシステムは、送信中にお客様の情報を暗号化します。お客様のクレジットカード情報を出品者と共有することはありません。また、お客様の情報を他者に販売することはありません。 詳細はこちら

  • これなら分かる応用数学教室―最小二乗法からウェーブレットまで

    Amazonはお客様のセキュリティとプライバシーの保護に全力で取り組んでいます。Amazonの支払いセキュリティシステムは、送信中にお客様の情報を暗号化します。お客様のクレジットカード情報を出品者と共有することはありません。また、お客様の情報を他者に販売することはありません。 詳細はこちら

  • Lambdacamels! : 404 Blog Not Found

    2005年09月04日13:06 カテゴリLightweight LanguagesMath Lambdacamels! λ calculusのファンなら、Perl6が気に入ることうけあいだ。 諸般の事情で今Lambda::Calculusというモジュールを書いているのだが、Perl5だとこれがいまいち面倒なのだ。こんな感じ。 our $ZERO = sub { my $f = shift; sub { my $x = shift; $x }}; our $SUCC = sub { my $n = shift; sub { my $f = shift; sub { my $x = shift; $f->($n->($f)($x)) }}}; our $ADD = sub{ my $m = shift; sub { my $n = shift; sub { my $f = shift; su

    Lambdacamels! : 404 Blog Not Found
    nozom
    nozom 2005/09/05
    Perl6でlambda計算
  • d.y.d. 再帰関数の意味とは不動点である!

    02:12 05/09/03 反応リンク集 fixの話 … Perl版、 Perl版、 C++版、 C++版、 Scheme版、 Concurrent Clean版。 (9/4追記: Ruby版、 Erlang版、 Squeak版、 D版。 Sukuna版。 Erlangのprocessを使ったメモ化の例は見てみたいかも。)。 で、 メモ化の話 … Python版、 Python版 (9/4追記: ET版、 Erlang版、 Java版、 PostScript版。 )。 decoratorは流石かっこいいですね。C++版は…うーん、個人的には、このくらいなら Boost に頼らないで直球ストレートで書いてあげたいところです。 彼はやればできる子なんです。 template<int (*G)(int(*)(int),int)> int fix(int x) { return G( fix<G