問題2.46

この前のやつにスターとかつけてくれた人がいて申し訳ないんだけど、あれは、問題2.45までしか出来ない形だ。
そのあとに、ちゃんとSICPなりの作り方が書いてあった。
基本手続きの定義を作るのはちょっと早すぎた。
これ以降のほうが正しい。

(define (make-vect x y)
  (cons x y))

(define (xcor-vect vect)
  (car vect))

(define (ycor-vect vect)
  (cdr vect))

(define (add-vect v1 v2)
  (cons (+ (xcor-vect v1) (xcor-vect v2))
        (+ (ycor-vect v1) (ycor-vect v2))))

(define (sub-vect v1 v2)
  (cons (- (xcor-vect v1) (xcor-vect v2))
        (- (ycor-vect v1) (ycor-vect v2))))

(define (scale-vect v s)
  (cons (* (xcor-vect v) s)
        (* (ycor-vect v) s)))