0
;; makeRectangle -- constructor for 'rectangle

(define makeRectangle
  (lambda (x0 y0 x1 y1)
       (makeGraph 'rectangle
               (list (makePoint x0 y0)
                     (makePoint x1 y1)))))

(makeRectangle 3 2 1 7)必须返回(rectangle (point 1 7) (point 3 2)) ,我将获得相同的返回(makeRectangle 1 2 3 7)or (makeRectangle 1 7 3 2),我必须使用:

min x0 x1 min y0 y1 
max x0 x1 max y0 y1

但我不知道该怎么做。你能帮我解决这个问题吗?提前致谢。

4

1 回答 1

1

你的意思是这样的:

(define makeRectangle
  (lambda (x0 y0 x1 y1)
    (makeGraph 'rectangle
               (makePoint (min x0 x1) (max y0 y1))
               (makePoint (max x0 x1) (min y0 y1)))))

-> (makeRectangle 3 2 1 7)
'(rectangle (point 1 7) (point 3 2))

-> (makeRectangle 1 2 3 7) 
'(rectangle (point 1 7) (point 3 2))

-> (makeRectangle 1 7 3 2) 
'(rectangle (point 1 7) (point 3 2))

-> (makeRectangle 3 7 1 2)
'(rectangle (point 1 7) (point 3 2))
于 2013-10-07T15:46:25.857 回答