タグ

JavaとMathに関するnozomのブックマーク (3)

  • HoareRulesの実行フレームワーク - 檜山正幸のキマイラ飼育記 (はてなBlog)

    構文だけを示しても実感がないでしょうから、どのように実行されるかを記述します。実装言語はJavaということにします。 ●コーラブルの実装方式 コーラブル(述語、関数、コマンド)に組み込みのものは存在しません。すべてユーザー定義です。次のようなインターフェースの実装クラスとしてコーラブルを定義します。 public interface Callable { public Object call(Object[] args) throws Exception; } public interface Function extends Callable { } public interface Predicate extends Function { Boolean call(Object[] args) throws Exception; } public interface Command e

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

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

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

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

    プログラマのための述語論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1