define crosses pos1 pos2 any list pos-x pos1 pos-x pos2 pos-y pos1 pos

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
(define (crosses pos1 pos2)
(any (list
(= (pos-x pos1) (pos-x pos2))
(= (pos-y pos1) (pos-y pos2))
(one-diagonale pos1 pos2))))
(define (one-diagonale pos1 pos2)
(= (abs (- (pos-x pos1) (pos-x pos2)))
(abs (- (pos-y pos1) (pos-y pos2)))))
(define (unique-pairs n)
(flatmap (lambda (i)
(map (lambda (j)
(list i j))
(enumerate-interval 0 (- i 1))))
(enumerate-interval 0 n)))