2006-06-01から1ヶ月間の記事一覧

13.5万円

壊れたノートPCの修理費の見積りがきた。マザーとDVDドライブのピックアップ交換、しめて13.5万円也。orz 16万円出せば同等品、17万円だせばCore Duo搭載品が買える。修理するべきか、新しいのを買うべきか…。

All-in-One-Gestureの新機能

usataさんとこの日記を読んで、「マウスの右をクリックしながら左ボタンをクリックする」と「戻る」になり、「マウスの左をクリックしながら右ボタンを押す」と「進む」になる、という事を知った…のだが、手元の環境ではできなかった。All-in-One-Gestureも…

thunar

Nautilusは重い。ディレクトリに何個のファイルが入っているのかをわざわざカウントしてくれるので、ホームディレクトリとかを開くのに非常に時間がかかる。(不精者なので、ホームディレクトリに100個以上のディレクトリがある。)まぁ、便利と言えば便利な…

予備実験3

クラスタリング結果を可視化してみた。可視化にはgraphvizを使った。当初はPNG形式での出力を試してみたのだが、10分以上経っても終わらないのであきらめた。ラスタ画像形式が良くないのかも、と淡い期待を抱いてSVG形式での出力を試してしてみると、なんと1…

予備実験2

類似度計算で、最も類似度の近い文書対を返すべきところで最も遠い文書対を返していた事に気づいた。修正してクラスタリングをやり直してみると、大きな一つのクラスタができあがった…。orz

予備実験

予備実験として文書のクラスタリングをしているのだが、どうにもうまくいってないような感じがする。やはり単語の重みづけぐらいはしないとダメか…。

cut

部分適用がわかるようになって、cutの便利さを理解した。cutスバラシス。

Software Transactional Memory

略してSTM。興味深いテクノロジだと思うのだが、どういう風に実装されるのか、想像がつかない。副作用はどうするんだろ。

混合数の推定

トピックモデルでのトピック数の推定って、もしかしてクラスタリングにおけるクラスタ数の推定と似てる?

Gaucheでパイプ

read-lineにallow-byte-string?を指定しなければいけないと言う事に気づかず、30分ほど浪費した。ていうか、これ、前もひっかかったような気がするな…。

Lispの本質

OriginalのLispにあったとても大事なNILがSchemeではなくなっているが、それでもSchemeはLispの仲間として分類される。Lispの本質というのは一体どこにあるのか、という講義での問いかけ。 たぶん、S式なのではないかと思う。要するに、括弧がたくさんあれば…

Parser Combinator

Parser CombinatorのCombintorって、Combinator CalculusのCombinatorかと思っていたのだけれど、どうやら関係ないのでは、と思い始めた今日このごろ。

修理代

壊れたThinkpad T42は、マザーボード交換になるようだ。10万円ぐらいはかかりそう、らしい。しょぼーん…。

ラムダ計算

大学院の講義でλ計算をするというのはどうなんだろう…。 まぁ、λ計算は院試のときにβ簡約をちょろっと勉強しただけなので、実はありがたかったりしたのだけれど。 条件分岐の実装は、真理値も関数である、という事で実現できるという事、始めて勉強したとき…

カリー化と関数クロージャ

関数クロージャがあればカリー化が実現できる、というのはよくわかるのだが、カリー化があれば関数クロージャが実現できる、というのがよくわからない。そもそも関数クロージャがまだよくわかってないのかもしれない。 それにしても、カリー化という言葉は容…

リージョン推論とGC

リージョン推論を導入することでGCの負荷を下げる事はできないだろうかと考えてみたのだが、保守的GCは生きているオブジェクト数に比例してマークコストがかかるわけで、リージョン推論を入れても実際に生きてるオブジェクトの数が変わるわけではないはずな…

本日の作業日報

マシンが動かない→HDDを取り出してサブマシンに付け替えてみる→HDDは壊れていないことが判明→とりあえずサブマシンで作業することにしよう→ハードウェアが違うのでxglxが起動しない→通常のXはxglxの設定をする時に壊したので起動しない→OSごと再インストール…

型推論の不思議

0除算でNothingを返す、mydivという関数を作ってみた。 mydiv1 _ 0 = Nothing mydiv1 n d = return (div n d) この関数をghciで実行してみると、問題なく動く。型推論の結果は(Integral a) => a -> a -> Maybe a。では、Nothingをこの定義からなくして、戻り…

隠蔽という観点

見せたくない、見たくない物を隠蔽してしまうという点で、マクロとモナドには共通点が見られる。どちらも利用するだけの立場で、読み書きデバッグはせずに済ませたい、という点でも共通している。

パーサコンビネータの本質

Parsecを別の言語に移植できないか、考えてみた。しばらく研究をサボって考えてみた結果、Parsecの本質は>>=と、tryあたりにあると見た。Schemeで書くことを考えると、tryはまぁいい。も比較的簡単に書ける。しかし、>>=は書き難い。>>=をdo記法で書き直す事…

関数型言語における連接、反復、選択

連接がモナドなのだとしたら、反復は再帰だろう。選択は…遅延評価?

型構成子とインスタンス

インスタンスとは、型クラスにおいて要求されている関数を具体的に実装した「型」…であると思っていたのだが、「型構成子」でも良いそうだ。ここのところがなかなか飲み込めない。ディスパッチする関数を決定するという点においては、型構成子でも十分に決定…

モナドの本質はつなぐ事

言いきってしまったが、実のところ、あまり自信はない。と、エチケットペーパーを敷いてからはじめるよ。 Haskellにおけるモナドの本質は、「つなぐ」ところにあるのではないだろうか。 例えば、IOモナドは副作用をつなぐ事で、実行順番を指定する。Maybeモ…

パーサコンビネータ

Cでパーサコンビネータを使ってパーサを構築できないかと考えてみたが、これはやっぱり難しそうだ。実現できなくはないと思うけど、美しく実装することは不可能に近いのではなかろうか。 うん、まぁ、どっちにしろ、Cでパーサを書く気なんて、さらさら無いん…

Maybe型という表現

Haskellにおいて、Maybeは型構成子であって型ではないので、Maybe型という表現は初学者の混乱を招くのではないだろうか、Maybe a型と書くべきなのではないか、と思うのだけれど、まだ理解が足りないのかしら。

スタック

スタックスタックと書いてきたが、計算途中の値を保存しておくデータ構造、もしかするとスタックじゃなかったりするのかしら。これもありえそう。なにせ関数型言語だ。油断は禁物だ。

遅延評価と再帰

上記の非末尾再帰のfactは、もしかしたらfact 5 = 5 * fact 4 = 5 * 4 * fact 3 = 20 * fact 3 ...という風に実行されてるんじゃなかろうか。そうだとしたら、スタックが溢れない説明がつく。つまり、スタックの内容を簡約できそうなら、簡約してしまう、と…

Haskellにおける末尾再帰の最適化

Haskellにおいて、末尾再帰の最適化というのは、どうなっているのだろう?気になったので、ちょっと試してみた。適当に階乗を定義して、実験してみる。 fact 0 = 1 fact n = n * fact (n - 1) 末尾再帰にすらなっていないが、このfactは、fact 100000とか実…

プレゼンテーションで一番重要なもの

プレゼンテーションにおいて一番大事なものはストーリーである、というのはBeyond bullet pointsに書いてあったことであるが、まったくその通りだと思う。さらに、自分の少ない経験を思い出してみると、多くのプレゼンテーション(というか、なにか話をする…