2014年5月21日水曜日

開発環境

計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の2(データによる抽象の構築)、2.5(汎用演算のシステム)、2.5.1(汎用算術演算)、問題 2.80.を解いてみる。

その他参考書籍

問題 2.80.

コード(BBEdit, Emacs)

sample.scm

#!/usr/bin/env gosh
;; -*- coding: utf-8 -*-

;; scheme数パッケージに追加
(define (install-scheme-number-package)
  (put '=zero? '(scheme-number)
       (lambda (x) (= x 0)))
  'done)

;; 有理数パッケージに追加
(define (install-rational-package)
  (define (=zero? x)
    (= (numer x) 0))

  (put '=zero? '(rational) =zero?)
  'done)

;; 複素数パッケージに追加
(define (install-complex-package)
  (define (=zero? x)
    (and (= (real-part x)
            0)
         (= (imag-part x)
            0)))

  (put '=zero? '(complex) =zero?)
  'done)

;; 汎用演算パッケージに設定
(define (=zero? x)
  (apply-generic '=zero? x))

0 コメント:

コメントを投稿