2013年9月13日金曜日

開発環境

計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の4(超言語的抽象)、4.1(超循環評価器)、4.1.6(内部定義)、問題 4.21を解いてみる。

その他参考書籍

問題 4.21

a.

入出力結果(Terminal, REPL(Read, Eval, Print, Loop))

1 ]=> 
((lambda (n)
   ((lambda (fact)
      (fact fact n))
    (lambda (ft k)
      (if (= k 1)
          1
          (* k (ft ft (- k 1)))))))
 10)

;Value: 3628800

1 ]=> (* 10 9 8 7 6 5 4 3 2 1)

;Value: 3628800

b.

コード(BBEdit)

sample.scm

(define (f x)
  ((lambda (even? odd?)
     (even? even? odd? x))
   (lambda (ev? od? n)
     (if (= n 0) true (od? ev? od? (- n 1))))
   (lambda (ev? od? n)
     (if (= n 0) false (ev? ev? od? (- n 1))))))

入出力結果(Terminal, REPL(Read, Eval, Print, Loop))

1 ]=> (f 0)

;Value: #t

1 ]=> (f 1)

;Value: #f

1 ]=> (f 2)

;Value: #t

1 ]=> (f 3)

;Value: #f

1 ]=> (f 4)

;Value: #t

1 ]=> (f 5)

;Value: #f

1 ]=> (f 100)

;Value: #t

1 ]=> (f 101)

;Value: #f

0 コメント:

コメントを投稿