Code Review

Compare your solutions

    #| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
(define (wave-painter)
  (segments->painter
   (list (make-segment (make-vect 0 0.5) (make-vect 0.2 0.7))
         (make-segment (make-vect 0.2 0.7) (make-vect 0.4 0.3))
         (make-segment (make-vect 0.4 0.3) (make-vect 0.6 0.7))
         (make-segment (make-vect 0.6 0.7) (make-vect 0.8 0.3))
         (make-segment (make-vect 0.8 0.3) (make-vect 1 0.5))
         ;; Make smile
         (make-segment (make-vect 0.3 0.2) (make-vect 0.4 0.15))
         (make-segment (make-vect 0.4 0.15) (make-vect 0.6 0.15))
         (make-segment (make-vect 0.6 0.15) (make-vect 0.7 0.2))
         )))

(define (corner-split painter n)
  (if (= n 0)
      painter
      (let ((up (up-split painter (- n 1))))
        (let ((top-left up)
              (bottom-right (right-split painter (- n 1)))
              (corner (corner-split painter (- n 1))))
          (beside (below painter top-left)
                  (below bottom-right corner)))))) 

(define (square-limit painter n)
  (let ((combine4 (square-of-four identity flip-horiz
                                  flip-vert rotate180))) ;; Order changed
    (combine4 (corner-split painter n))))