Entries from 2011-08-01 to 1 month

第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…