2007-01-01から1年間の記事一覧

fluent interface

fluent interfaceって、気持ち悪くない?

m-fold composition of permutation

ということの意味がわからなくて困っていたが、ググったらすぐわかった。 http://web.ew.usna.edu/~wdj/book/node153.html

Concurrent Clean : 内包表記でのパターンマッチ

http://ja.doukaku.org/comment/2841/ via: http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071022#p01 内包表記でパターンマッチなんてできるんだー。 Cleanでもできるらしい。 uniqOnly xs = [x \\ [x]<-[[z \\ z<-xs | z==y] \\ y<-xs]] 知らな…

関数プログラミングのアプローチ (5)

非シングルスレッド化 前回、プログラムを関数的に書き換えましたが、プログラムはシングルスレッド化されていたために、関数プログラミングのメリットを生かせていませんでした。ここでは、これを非シングルスレッド化する方法について検討します。 シング…

miau

http://miau.jp/ via: http://d.hatena.ne.jp/atsushieno/20071017/p1 こんなの出来てたんだな。 私はとても「先進」ユーザーとは言えないけれど、生温かく見守ろうと思った。

集中力不足

最近、集中力が不足気味で困っているので、Pink Noizeを試してみることにした。 http://www.vector.co.jp/soft/data/art/se415019.html ここでmp3ファイルが手に入るので、これをCDに焼いて聞くことに。 参考) http://blog.livedoor.jp/sparklegate/archive…

Concurrent Clean : print命令

http://cleanj.sourceforge.net/abc_inst.html#print print系命令は、printしか説明を書いていないが、system.abcにはそれ以外の命令も使われている。しかし、今までの所、Cleanコンパイラが出力したabcコードに含まれているものは見たことがない。

関数プログラミングのアプローチ (4)

モンテカルロ法の関数的プログラム (1) 前回、関数的な乱数生成器を作成しました。これを用いて関数的なモンテカルロ法のプログラムを作成することはそれほど難しくありません。 以下は、命令的プログラムを関数的な乱数生成器を用いて書き換えたものです。 …

Concurrent Clean : CleanJ : build_r

http://cleanj.sourceforge.net/abc_inst.html#build_r build_rにB値の型情報が付いてないなー。

数学的帰納法

[id:okamoto7:20071012:p1] コメント欄がいろいろなことになっているけれど、これってcが定数にならないということじゃないのだろうか? つまり、 1+2+...+n = O(n) は ∃c > 0, ∀n, 1+2+...+n ≦ cn なので、 i) c ≧ 1 ならば 1 ≦ c*1 ii) n ≦ c のときは 1+2…

生活

生活リズムを見直したら、PCを触る時間が減ってしまった。

本が届いた

[id:lethevert:20071006:p1]で買った本が届いた。 「多少汚れが・・・」的なことが書いてあったが、表紙の痛みがひどい。しかし中はわりかしきれい。 定価に対してひどく高値で売られてるということがわかった。カバーにかかれていた値段は、$32.95だった。J…

Haskell: Haskellがアセンブリになるまで

http://pira.jp/nandemo/wiki.cgi?page=62 うは。すごい面白そう。 聞いてみたいけど、平日の午後 5 時 35 分って、絶対無理だな。

関数プログラミングのアプローチ (3)

関数的な乱数生成器 前回の課題は、乱数生成器を関数的に記述するにはどうすればよいかということでした。グローバル変数に乱数生成器の状態を保持することなく乱数生成器を書くにはどうすればよいでしょうか? 答えは、全ての状態を関数の引数として受け渡…

OCaml, Concurrent Clean, Java: 型からプログラムを生成する

http://itpro.nikkeibp.co.jp/article/COLUMN/20071005/283903/ む。 Genericsの定義の仕方に似てるなー。 - とりあえず、脊髄反射でCleanとJavaに翻訳 Java版はやや無理があるけど、一応ちゃんと動きます。出力形式をOCaml形式にしてますけど、Java式に出力…

つぶやき

あー、これってArrowだな。

イベント: Seasar Conference 2007 Autumn

http://event.seasarfoundation.org/sc2007autumn/

Concurrent Clean : CleanJ : 整理

今問題になっているのは、スタックの表現方法なのだけれど、それを整理しておく。 Real型の扱い B-Stackやユーザー定義データに含まれるReal型の値は、2つのB値として取り扱われているのだけれど、これをJavaに置き換えたときには、double型の値を2つのint…

Concurrent Clean : コンパイラがHeap Fullになった

1つの関数が長すぎるんだよ。

Online Computation Compet Analysis

昨日の件で、結局一番混乱していたのは、competitive analysisという概念をよく理解していなかったことらしいのだけれど、それは新しい本を読みはじめたときはよくあることなので。 そもそも、MTFがcompetitiveということのイメージがよく掴めなかったという…

関数プログラミングのアプローチ (2)

参照透明 前回の続きを進める前に、関数的というものを定義しておく必要があるかと思います。関数的なプログラムとはどういうプログラムなのでしょうか? 関数的なプログラムとは参照透明性が確保されたプログラムのことで、参照透明とは Referential transp…

Concurrent Clean : CleanJ : 他のモジュールの情報を参照する必要性

replace命令などを見ると、他のモジュールで定義されている情報を参照しなければ静的に取り扱うことはできなさそうだ。(後述) これは面倒だなぁ。 - あ、これは引数のa_size, b_sizeから必要な情報が取得できるのか。 それなら、他のモジュールを見る必要…

Java: Jasmin : doubleをint2つとして取り扱うことはできるか?

Jasminをインストールして実験してみた。 .method public static main([Ljava/lang/String;)V .limit stack 3 getstatic java/lang/System/out Ljava/io/PrintStream; ldc 1 ldc 1 invokevirtual java/io/PrintStream/println(D)V return .end methodという…

Java: Jasmin: 逆アセンブラ

tinapocというプロジェクトにJasminの逆アセンブラが含まれている。 http://sourceforge.net/projects/tinapoc 適当に展開して、次のようなシェルを書いてdejasminという名前で保存しておけば、 #!/bin/sh ROOT=~/lib/tinapoc-0.4/bin java -cp ${ROOT}/bcel…

Java: Jasmin: キャストとか(結構めんどくさい)

次のようなプログラムを考える。 getstatic java/lang/System/out Ljava/io/PrintStream; checkcast java/lang/Object ldc 1 invokevirtual java/io/PrintStream/println(I)Vこれを実行すると、 $ java test Exception in thread "main" java.lang.VerifyErr…

Online Computation Compet Analysis

[id:lethevert:20071004:p1]の本だけれど、10ページくらい読んだところで、どうにも証明が理解できなくて困っている。MTFが2-competitiveであることの証明なのだけれど。 原論文を探してみたら、http://www.cs.cmu.edu/~sleator/papers/Amortized-Efficiency…

Concurrent Clean : CleanJ : ABCコード : Jasmin

ABCコードは型がないので、これをJavaコードに起こすには型を推論しなければいけない。で、これが結構面倒くさい。 JavaコードではなくJasminを使えば、型の推論を回避できるだろうかと考えている。*1 ただ、Jasminのドキュメントはちょっと少ない。すでに絶…

関数プログラミングのアプローチ (1)

モンテカルロ法の命令的プログラム まずは簡単な例を考えてみることにします。 プログラミング言語は当面pythonを使います。命令型も関数型も同じ言語を使います。これは、馴染のない純粋関数型言語を使わないで説明するということの他に、関数プログラミン…

読了: Algorithms in C++ Part 5: Graph Algorithms

Algorithms in C++ Part 5: Graph Algorithms作者: Robert Sedgewick出版社/メーカー: Addison-Wesley Professional発売日: 2001/12/27メディア: ペーパーバック クリック: 1回この商品を含むブログ (3件) を見る読みはじめは5/20([id:lethevert:20070520:p…

Re: 最適化ワークショップ

[id:okamoto7:20071005:p2] 面白そ。