SICP 2.46
何だ、図形言語と関係ないじゃないか。
(define make-vect cons) (define xcor-vect car) (define ycor-vect cdr) (define (add-vect v1 v2) (make-vect (+ (xcor-vect v1) (xcor-vect v2)) (+ (ycor-vect v1) (ycor-vect v2)))) (define (sub-vect v1 v2) (make-vect (- (xcor-vect v1) (xcor-vect v2)) (- (ycor-vect v1) (ycor-vect v2)))) (define (scale-vect s v) (make-vect (* s (xcor-vect v)) (* s (ycor-vect v)))) ; test (define v1 (make-vect 4 3)) (define v2 (make-vect 2 1)) (xcor-vect v1) (ycor-vect v1) (add-vect v1 v2) (sub-vect v1 v2) (scale-vect 3 v1)