(define (descartes a b)
(let ((ls '()))
(for-each (lambda (x)
(set! ls (append ls (map (lambda (y)
(cons x y)) b)))) a)
ls))
The above codes is a implementation how to make a descartes set.