2.2(点,线段,矩形的构造)

;2.2
(define (make-point x y)
  (cons x y))

(define (x-point p)
  (car p))

(define (y-point p)
  (cdr p))

(define (print-point p)
  (newline)
  (display "{")
  (display (x-point p))
  (display ",")
  (display (y-point p))
  (display "}"))

(define (make-segment start-segment end-segment)
  (cons start-segment
        end-segment))

(define (start-segment l)
  (car l))

(define (end-segment l)
  (cdr l))

(define (average x y)
  (/ (+ x y)
     2))

(define (midpoint-segment l)
  (let ((start (start-segment l))
        (end (end-segment l)))
    (make-point (average (x-point start)
                         (x-point end))
                (average (y-point start)
                         (y-point end)))))


(print-point (make-point 1 1))

(define start (make-point 1 3))
(define end (make-point 4 3))
(define seg (make-segment start end))
(define mid (midpoint-segment seg))
(print-point mid)


(define (perimeter-rectangle sq)
  (let ((length (length-of-rectangle sq))
        (width (width-of-rectangle sq)))
    (* 2
       (+ length width))))

(define (area-rectangle sq)
  (* (length-of-rectangle sq)
     (width-of-rectangle sq)))
;
(define (make-rectangle length-1 length-2 width-1 width-2)
    (cons (cons length-1 length-2)
          (cons width-1 width-2)))

;; selector

(define (length-1-rectangle r)
    (car (car r)))

(define (length-2-rectangle r)
    (cdr (car r)))

(define (width-1-rectangle r)
    (car (cdr r)))

(define (width-2-rectangle r)
    (cdr (cdr r)))

 

转载于:https://www.cnblogs.com/R4mble/p/8395202.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值