;; segment cons fuction
(define (make-segment start-point end-point) (cons start-point end-point))
(define (start-segment segment) (car segment))
(define (end-segment segment) (cdr segment))
;; point cons fuction
(define (make-point x y) (cons x y))
(define (x-point p) (car p))
(define (y-point p) (cdr p))
;;the mid fuction
(define (midpoint-segment seg)
(let ((start (start-segment seg))
(end (end-segment seg)))
(make-point (average (x-point start)
(x-point end))
(average (y-point start)
(y-point end)))))
;; the average of the two points
(define (average x y)
(/ (+ x y) 2.0))
;; the input fuction
(define (print-point p)
(newline)
(display "(")
(display (x-point p))
(display ",")
(display (y-point p))
(display ")"))
;; init the data
(define start (make-point 1 2))
(define end (make-point 3 4))
(define seg (make-segment start end))
(define mid (midpoint-segment seg))
;; the last thing you do is run the program and input : (print-point mid)sicp习题2.2
最新推荐文章于 2020-12-29 10:49:33 发布
本文详细探讨了段落构造与点计算的相关算法,包括如何创建段落、获取起始和结束点,以及计算中间点。通过实现一系列函数,展示了在计算机科学领域中处理几何形状的基本操作,旨在为读者提供对段落构造和点计算核心概念的深入理解。
119

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



