Entries from 2011-01-01 to 1 year

MIT schemeのエディタedwinの設定

MIT schemeのエディタedwinをlinuxで動かす際のメモ。 MIT schemeをmake installしたら、schemeコマンドでMIT schemeが起動します。 Windowsと同じようにedwinを使う場合には、以下のように--editを指定します。 scheme --edit ただこれだけだとフォントの色…

第4回スタートHaskellの予習

第四回スタートHaskellの予習をしました。第四回スタートHaskellでは8章と9章をやるそうですが、 今回は8章の練習問題のex1, ex2, ex6, ex7しか出来ませんでした。

4.3.3 amb評価器の実装とcall-with-current-continuation

SICP 4.3.3を読んでamb評価器を実装しました。 またほとんど教科書からの書き写しですが、そこそこちゃんと動くと思います。 (amb-loop)を評価して評価器を実行します。 ここのポイントはreadマクロで得られた木をanalyzeすると、 継続による処理のシリアラ…

bridgeでDHCPを使うように設定する

kvmでゲストOSをネットワークに参加させる場合にはbridgeを使います。 bridgeを使ってDHCPでIPアドレスを取得するよう設定するのに手間取ったのでメモを残しておきます。 OSはfedora15です。 結果はいまいち 今回の設定でDHCPでIPアドレスを取得する事ができ…

SICP4.1にとりかかる前に足し算evalを作る

SICP4章ではschemeの評価器を作ります。 SICPの4.1を読んでそのまま実装するだけでクロージャを装備した簡易schemeが出来上がります。 しかしそれだけにハードルが高くなるためなかなか先に進めなくなってしまう場合も多いそうです。 そこで今回は足し算を実…

第2回スタートHaskellの補足演習問題と宿題をやりました

第2回スタートHaskellの補足演習問題と宿題をやりました。 補足演習問題 Google グループこの補足演習問題では関数の型をなるべく書こうとしたのですが、 どうも演習14の関数fの型が書けません。 だれか詳しそうな人に聞いてみたいと思います。 畳み込みの…

第2回スタートHaskellの範囲を予習しました。

第2回スタートHaskellの範囲の演習問題を解いてみました。 間違っている箇所が多々あると思いますが、ここに載せておきます。第2回スタートHaskellの範囲はプログラミングHaskellの以下の章です。 第5章 リスト内包表記 第6章 再帰関数 第7章 高階関数 5章 …

第1回スタートHaskellの範囲を予習しました。

プログラミングHaskellの2章から4章まで予習しました。 つまづいた点や練習問題の解答を書いておきます。 間違っている箇所が多々あると思います。 第2章 はじめの一歩 関数適用の仕方とかコメントの書き方といった基本中の基本です。 この章でつまずいた…

Boost.Poolでメモリ確保に要する時間について

Boost.Poolを使ってメモリを確保するのにどのくらいの時間がかかるか調べてみた。 常に一定時間で、かつ、newよりも高速にメモリを確保出来るかどうか知りたかったからだ。 実際に動かして確認してみたところ、Boost.Poolは大きめのサイズのメモリをプールと…

継続は計算処理終了後の将来像を表現したものであるということ

SICPのambの実装を読む前にambの実装を想像するとambは継続を使わなければ実現出来ないような気がします。 そこで継続の動作を復習したのですが、やっぱり全然理解出来ていませんでした。 復習した結果として「継続は計算処理終了後の将来像を表現したもの」…

SICP 4.3 Schemeの変形 - 非決定計算 ex4.35 から ex4.44まで

SICP 4.3の非決定計算に入りました。 ここからambという新しい特殊形式が導入されます。 ambの引数に取った値のどれか一つ返すようです。 実装については4.3.3 amb評価器に入るまでお預けです。 requireとか継続使わないと実装できない気がしますが、どうや…

SICP 4.2 Schemeの変形 - 遅延評価

scheme SICP"SICP 4.2 schemeの変形"を読んで遅延評価するインタプリタを書きました。 実装したインタプリタは前回の構文解析分離タイプのインタプリタを一部修正したものなので本文中の実装とはちょっと違います。 このインタプリタは以下の不具合がありま…

SICP再開しました

SICP再開しました。 "4.1.7 構文解析を実行から分離する"を読んで実装したプログラムを載せておきます。 問題4.22の解答はプログラム中のanalyze-letの実装のとおり。問題4.23の解答はこんな感じ。 本文版は以下のようになっている。 (define (analyze-seque…