2007-08-01から1ヶ月間の記事一覧

プログラミングのオキテを読み中。

まつもと直伝 プログラミングのオキテ--目次:ITproを読み中です。5回までがが〜っと読んだ。長いよ・・・。 まつもと氏の発言に「抽象」「手続き」という言葉が多用されてる。 Lispは多重継承が出来るって書いてあった。今後がスゲー楽しみ。やっぱLispこそ…

K&Rを読もう(22) 演習2-1 変数の範囲

GCC

演習2-1 変数の範囲を調べる問題。面倒なのでマクロで自動生成してみた。 #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> #define UCHAR_MIN 0 #define USHRT_MIN 0 #define UINT_MIN 0 #define size(s, t, S) printf("%-15s : %2d byte %2d bit %16" #t "%16" #t</float.h></limits.h></stdlib.h></stdio.h>…

チャーチ数で対数の世界を作る。

チャーチ数 0 1 2 3 4 5 ...僕等が普段接している世界は自然数の世界だ。 0 0に1を足して1 0に1を足して1を足して2 0に1を足して1を足して1を足して3ラムダ計算を生み出したチャーチは、自然数の世界を抽象的に捉えた。 xはzero xにfをしてone xにfをしてfを…

Schemeで中置記法演算

やっぱり時代は中置記法なんじゃないかと思って、Schemeで中置記法演算してみた。 まず定義。eqはイコールの意味です。 (define (eq a f b) (f a b)) 簡単デスネ。 では、Schemeで中置記法演算してみる。 (eq 1 + 2) ; 3 なんか親しみやすい感じですね!! ち…

SICPを読む(42) 問題 2.10 ゼロ除算の検出

ゼロ除算を検出せよという問題。簡単だったので、ちょっと工夫してみた。 0 * x = 0なので、乗算でのゼロを検出できる。 (define (div-interval x y) (if (= 0 (* (lower-bound y) (upper-bound y))) (error "div-interval : zero division error") (mul-int…

SICPを読む(41) 問題 2.9 区間の幅

むむ・・・。全然わからんので、素人くさいSICP「独」書会の解答を見た。 SICP memo: 問題2.9 素晴らしい。 要するに、「幅(区間a) + 幅(区間b)」と、「幅(区間a + 区間a)」が一緒かどうかって事か。 僕は具体例を示してみる。まずは、幅の定義する。幅 = (…