2010-10-09から1日間の記事一覧

SICP 問題 2.80(ゼロ確認述語手続きを追加。)

問題 引数が0かどうかテストする汎用述語=zero?を定義し、汎用算術演算パッケージに設定せよ。この演算は通常の数、有理数、及び複素数に対して働くものとする。 解答 これも汎用演算を定義するのと、各パッケージに専用の演算手続きを定義していくだけな感…

SICP 問題 2.79(汎用等価述語equ?を追加。)

問題 二つの値の等価をテストする等価述語equ?を定義し、汎用算術演算パッケージに設定せよ。この演算は通常の数、有理数、及び複素数に対して働くものとする。 解答 「異なる型」の比較については現段階で考慮されていない。(だって問題2.80以降にそれにつ…

SICP 問題 2.78(通常の数値での演算もできるようにする。)

問題 scheme-numberパッケージの内部手続きは、実質的には基本手続きである+、-を呼び出すだけである。 言語の基本手続きを直接呼び出すのは、型タグシステムでは各データオブジェクトに型をつける必要があるので不可能である。しかし実際のところ、Lispの実…

SICP §2.5(汎用演算のシステム その2[異なる型のデータの結合])

さぁ、やっと「異なるデータ型」の取扱いにきたぞと。このセクションでは、このエントリで「わからん」と言っていたことと、見習いschemerさんに教えていただいたことの核心を説明している。 要するに、「異なる型データが混在した場合どのように扱うべきか…