cons对于数据结构来说是一个很强大的东西
(define (print-point p)
(newline)
(display "(")
(display (x-point p))
(display ",")
(display (y-point p))
(display ")"))
(define (make-point x y)
(cons x y))
(define (x-point p)
(car p))
(define (y-point p)
(cdr p))
(define (make-segment start end)
(cons start end))
(define (start-segment segment)
(car segment))
(define (end-segment segment)
(cdr segment))
(define (midpoint-segment segment)
(cons (/ (+ (x-point (start-segment segment)) (x-point (end-segment segment))) 2)
(/ (+ (y-point (start-segment segment)) (y-point (end-segment segment))) 2)))
(define p1 (make-point 1 2))
(define p2 (make-point 1 4))
(define s (make-segment p1 p2))
(x-point p1)
(y-point p1)
(print-point p1)
(print-point (midpoint-segment s))
本文介绍了一种使用Scheme语言定义和操作几何对象的方法。通过定义make-point, make-segment等函数来创建点和线段,并实现了midpoint-segment函数用于获取线段中点。这些函数展示了如何利用Scheme的基本构造cons, car, cdr来处理几何数据。
207

被折叠的 条评论
为什么被折叠?



