32 lines
746 B
Scheme
32 lines
746 B
Scheme
#lang scheme
|
|
|
|
(define get-x 1)
|
|
(define get-y 2)
|
|
(define do-print 3)
|
|
(define add 4)
|
|
|
|
(define (displayln x) (display x) (newline))
|
|
|
|
(define (vector x y)
|
|
(define (add-to other)
|
|
(vector (+ x (other get-x)) (+ y (other get-y))))
|
|
|
|
(lambda (message)
|
|
(if (= message get-x) x
|
|
(if (= message get-y) y
|
|
(if (= message add) add-to
|
|
(if (= message do-print) ((lambda () (displayln x) (displayln y) (newline)))
|
|
((lambda () (displayln -99) 0))))))))
|
|
|
|
(define v-1-7 (vector 1 7))
|
|
(displayln (v-1-7 get-x))
|
|
(displayln (v-1-7 get-y))
|
|
(v-1-7 do-print)
|
|
|
|
(define v-8-2 (vector 8 2))
|
|
(displayln (v-8-2 get-x))
|
|
(displayln (v-8-2 get-y))
|
|
(v-8-2 do-print)
|
|
|
|
(define v-9-9 ((v-8-2 add) v-1-7))
|
|
(v-9-9 do-print) |