(load "2.40.txt") ; for unique-pairs ; Find (i, j, k) st ; 1 <= i < j < k <= n ; i + j + k = s (define (three-sum n s) (define (solution? triple) (let ((i (car triple)) (j (cadr triple)) (k (caddr triple))) (and (> i 0) (< i j)))) (filter solution? (map (lambda (pair) (let ((k (car pair)) (j (cadr pair))) (list (- s (+ j k)) j k))) (unique-pairs n))))