Browsing articles in "SICP"
1月
27
2010

SICP解答 1.1 ~ 1.10

計算機プログラムの構造と解釈 計算機プログラムの構造と解釈
Gerald Jay Sussman

ピアソンエデュケーション 2000-02
売り上げランキング : 96983

Amazonで詳しく見る

問題 1.1

1 ]=> 10
;Value: 10

1 ]=> (+ 5 3 4)
;Value: 12

1 ]=> (+ 5 3 4)
;Value: 12

1 ]=> (-9 1)
;Value: 8

1 ]=> (/ 6 2)
;Value: 3

1 ]=> (+ (* 2 4) (- 4 6))
;Value: 6

1 ]=> (define a 3)
;Value: a

1 ]=> (define b (+ a 1))
;Value: b

1 ]=> (+ a b (* a b))
;Value: 19

1 ]=> (= a b)
;Value: #f

1 ]=> (if
        (and (> b a) (< b (* a b)))
            b
            a)
;Value: 4

1 ]=> (cond ((= a 4) 6)
        ((= b 4) (+ 6 7 a))
        (else 25))
;Value: 16

1 ]=> (+ 2 (if (> b a) b a))
;Value: 6

1 ]=> (* (cond ((> a b) a)
           ((< a b) b)
           (else -1))
           (+ a 1))
;Value: 16

問題 1.2

(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))

問題 1.3

(define (square x) (* x x))

(define (sum-of-squareas x y)(+ (square x)(square y)))

(define
  (max-sum-of-squareas a b c) (
    if (> a  b)
      (
        if (> b c)
          (sum-of-squareas a b)
          (sum-of-squareas a c)
      )
      (
        if (> a c)
          (sum-of-squareas a b)
          (sum-of-squareas b c)
      )
  )
)

問題 1.4

普通に使える。手続きの意味は、名前の通り、 a + bの絶対値

問題 1.5

作用的順序では、(p)が評価されるので、循環参照に陥る。正規順序では、(p)が評価されることなく、0を返し正常に終了する。

問題 1.6

保留

問題 1.7

保留

問題 1.8

(define (cbrt-iter guess x)
   (if (good-enough? guess x)
       guess
       (cbrt-iter (improve guess x) x)
   )
)
(define (good-enough? guess x)
   (< (abs (- (cube guess) x)) 0.001)
)
(define (cube x) (* x x x))
(define (improve guess x)
   (/ (+ (/ x (* guess guess)) (* 2 guess)) 3)
)
(define (cbrt x) (cbrt-iter 1.0 x))

問題 1.9

保留

問題 1.10

1 ]=> (A 1 10)
;Value: 1024

1 ]=> (A 2 4)
;Value: 65536

1 ]=> (A 3 3)
;Value: 65536

f(n) = 2n
g(n) = 2^n
h(n) = 2^h(n-1)
ただし、h(0) = 1

1月
13
2010

MIT Shemeでコンパイル

以下のようにやる。

(cf "foo")

これで、foo.scmがコンパイルされる。その後、

(load "foo")

で実行される。

参考リンク

  1. MIT Scheme ユーザー マニュアル:プログラムのコンパイル
9月
16
2009

MIT/GNU Schemeを動かしてみる

Windowsでの手順です。ちょっとまだ使い方が分かってないので、おかしなことかいてるかもしれません

ダウンロード&インストール

MIT/GNU Scheme – GNU Project – Free Software Foundation (FSF)Windows binaryをクリックしてダウンロードする。

あとは、普通の手順でインストールするだけです。

実行

デスクトップに現れたアイコンをクリックするとEmacsライクなエディタ、EdwinとMIT/GNU Schemeが立ち上がります。

MIT/GNU Schemeのほうで、Ctrl-Uを打つと、REPLモードになります。

(identify-world)とか打つといろいろ情報を教えてくれたりします。
(cd “C:\\hoge”)でディレクトリ移動。
(pwd)でカレントディレクトリ表示なども。

終わるときは、(exit)です。

関連リンク


Now loading...

PR

Flickr