#lang planet neil/sicp;; init the cons and other basic fuction(define (make-point x y) (cons x y))(define (x-point point) (car point))(define (y-point point) (cdr point))(define (make-segment start end) (cons start end))(define (start-segment seg) (car seg))(define (end-segment seg) (cdr seg))(define (square x) (* x x));; call the distance of two point(define (distance start end)(sqrt (+ (square (- (x-point end)(x-point start)))(square (- (y-point end)(y-point start))))));; the length of a segment(define (distance-of-segment seg)(let ((start (start-segment seg))(end (end-segment seg)))(distance start end)));; the perimeter of the rectangle(define (perimeter x y) (* 2 (+ (distance-of-segment x) (distance-of-segment y))));; the area of the rectangle(define (area x y) (* (distance-of-segment x) (distance-of-segment y)));; the input you need init(define p1 (make-point 0 0))(define p2 (make-point 2 0))(define p3 (make-point 2 2))(define l1 (make-segment p1 p2))(define l2 (make-segment p2 p3))
sicp 习题2.3
最新推荐文章于 2025-05-22 19:41:20 发布