1(new-figure "Spiral")
2
3(define (square p1 p2 p3 p4 n)
4   (let* ((s1  (Segment "" extremities     p1 p2))
5	  (s2  (Segment "" extremities     p2 p3))
6	  (s3  (Segment "" extremities     p3 p4))
7          (s4  (Segment "" extremities     p4 p1))
8	  (A   (Point   "" on-curve    s1   1/10))
9	  (B   (Point   "" on-curve    s2   1/10))
10	  (C   (Point   "" on-curve    s3   1/10))
11	  (D   (Point   "" on-curve    s4   1/10)))
12     (send A masked)
13     (send B masked)
14     (send C masked)
15     (send D masked)
16 (if (> n 0)
17     (square  A B C D (- n 1)))))
18
19 (lets Point "M" free  5  5)
20 (lets Point "N" free -5  5)
21 (lets Point "O" free -5 -5)
22 (lets Point "P" free  5 -5)
23
24 (square M N O P 30)
25