2005-11-01から1ヶ月間の記事一覧

CLOS

を読んでいますが、ちょうどCLOSの説明のところを読んでいて、軽い衝撃を受けています。 なんていうか、私の知っているオブジェクト指向とは違いすぎるというか・・・ 詳細な文法は省くとして、衝撃を受けたポイントを端的に言うと、クラスとメソッドの結合…

SICP

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science) 結局、本を買うことにした。

アルゴリズム

私は、どうも、フレームワークやインターフェースのことを考えるのは得意だけれど、アルゴリズムは苦手なのではないかと思うようになってきた。 しかし、アルゴリズムは、数学の計算問題のようなもので、反復練習で身に付けるものだとも思う。 だから、これ…

勉強時間

学生のころ(今となってはだいぶ前)には、あたりまえのように感じていて、取り立てて考えたこともなかったけれど、学生は、勉強するには理想的な環境にいる。何か勉強したければ、一週間ぶっ通しでテキストを読んでいてもよい。 仕事をしている身だと、その…

Prolog

昨日、何年前かに買ったPrologの本を開いてみた。 Prologへの入門 (PrologとAI) AIプログラミング (PrologとAI) 買ったときは、見たこともない言語だというだけの理由で買って、読んでは見たものの、結局あまり理解できないままでいたのだ。 しかし、Concurr…

形式検証

Prologのキーワードをたどって下のエントリを見つけました。 [id:bonotake:20051125] そういえば、Concurrent Cleanにも定理証明系がくっついていたような。 Sparkle : http://www.cs.ru.nl/Sparkle/ ここっすね・・・って、重いよこのページ。 - ところで、…

遅延評価

最近連続している遅延評価を考えるシリーズです。 昨日の話とは、別の角度から、考えてみました。 [id:lethevert:20051124:p2]で挙げたソース、 ... where calcs = getCalc where getCalc = [calc x \\ x <- [0..]]という無限リストが使えないという話です。…

Java : MessageFormat

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/text/MessageFormat.html こんなものがあるらしい。使い方は↓ [id:calotocen:20051127]

遅延評価

[id:lethevert:20051124:p1] 先日、こんなことを書きましたが、結局、あれこれ考えた結果、やっぱりだめだという結論になりました。 何がどうダメだったかは、いずれ時間のあるときにゆっくり書くとして、このことから考えたことを書こうと思います。

マンション

どうやらマンションは、昭和55年以降平成10年までに立てられたものであるほうがよいようだ・・・

SICPをHaskellで読む

http://oss.timedia.co.jp/index.fcgi/kahua-web/show/Haskell/SICP まだ中身はないみたい。ちょっと期待。

Rubyの後置ifの解釈順序

http://www.rubyist.net/~matz/20051123.html#c00 コメントにある 文法解析のコンテキストと実行のコンテキストで解釈の順序が違うので、両者を混同して後者に引きずられると「同じであろう」となるのも分かる気がします。 x がメソッドなのか変数なのかとい…

遅延評価

[id:lethevert:20051123:p5] 昨日の計算は、無駄な計算が多いと思ったので、コードをシンプルにして、もう一度再計算してみた。

遅延評価

昨日([id:lethevert:20051123:p5])は眠かったせいか、何を言いたいのかよく分からないことを書いていたようだ。 要は、遅延評価が現実的に有効かどうかを考えたかった(のだと思う)のだが、 [id:lethevert:20050912:p2] の時にも思ったのだけれど、遅延評…

モナド

[id:lethevert:20051122:p1] 要は、パターンマッチを使って、「可能な計算状態の集合」の要素に対して、適切な処理を割り当てていきましょうということだよね。 つまり、こんな感じ? ::状態 = A a | B b | C c f :: a -> 状態 f :: b -> 状態 f :: c -> 状…

OllyDbg おもしろ

デバッグ中に、メモリ上の命令列を書き換えれば、動的にプログラムの動作を変更できるんだ。 考えてみればあたりまえだけれど、これはかなり新鮮な驚きだ。

圏論

http://ja.wikipedia.org/wiki/%E5%9C%8F%E8%AB%96 後で読んどきます。

書いとく

アップルのiMac G5欲しい!

遅延評価

誰かが、遅延評価が嬉しいと思ったことはないと書いていたような気がしたが、そんなこともないのではないかと思って、実験してみることにした。 遅延評価を上手く使うと、時間のかかる計算を、結果の再利用をしてリソースの節約をするようなコードが簡単に書…

モナド

ああ、だんだん、モナドが分からなくなってきた・・・ ---- Haskellのdo記法と「Concurrent Cleanで一意型を使ったときのletと「=」に似ている? ---- モナドを使うことのメリットは、以下の3つに要約できる? 一つの値に複数の状態を混在させられる 実行順…

Maybe

先日([id:lethevert:20051119:p5])、↓のように書いたが、 悩んだのは(というか、いつも悩むのは)、例外処理をどうしようかということ。nextとprevはタプルで真偽値を返して、それ以外はabortにしたけれど、どうするのが使いやすいのだろう? こういうこ…

foldr

[id:lethevert:20051011:p1] で、よく分からないとかいたけれど、展開してみたら、分かった。 foldlは、確かに、計算量が増えることがある。

計算量について

HaskellやConcurrent Cleanは、他の言語だとかなり複雑に書く必要がある問題も非常に簡潔に書けるのはすごく利点なのだけれど、その反面、計算の実行過程が隠れているので、計算量の判断が自明でないことがあって、じっと考え込んでしまうことがある。 でも…

samefringe problem

このまえ、考えるといっていたやつ。 http://practical-scheme.net/wiliki/wiliki.cgi?Shiro data Tree a = Leaf a | Branch [Tree a] fringe :: Tree a -> [a] fringe (Leaf x) = [x] fringe (Branch x) = foldr (\x r -> fringe x ++ r) [] x samefringe :…

ZipperをConcurrent Cleanで実装してみた。

とりあえず、リストについて。 悩んだのは(というか、いつも悩むのは)、例外処理をどうしようかということ。nextとprevはタプルで真偽値を返して、それ以外はabortにしたけれど、どうするのが使いやすいのだろう?

OCamlの型推論

d.y.d.さんとこのやつだけど、firefoxで見たら、文字が小さかった。

samefringe problem

http://practical-scheme.net/wiliki/wiliki.cgi?Shiro このHaskellは、これでいいのかな? 後で、ちょっと考えてみる。

Javaが遅いのは

GCのせいではないと思うが。

アセンブラ

文法はなんとなく分かってきたので、次は、コンパイラがどういうコードを吐くのかを調査する予定。

アセンブラ理解度

[id:w_o:20051006:p1] アセンブラを少しだけ理解したので、ここのコードを分析してみる。 org 100hまず、実行開始番地を指定。COM実行形式の実行ファイルの場合は、これを書きます。 section .textコードセクションの開始。セクションは、コード(.text)、…