Blob


1 (defun unique-triples (n)
2 "Unique triples of numbers <= n"
3 (flatmap
4 (lambda (i)
5 (flatmap
6 (lambda (j)
7 (mapcar
8 (lambda (k) (list i j k))
9 (enumerate-interval 1 (1- j))))
10 (enumerate-interval 1 (1- i))))
11 (enumerate-interval 1 n)))
13 (defune triples-sum-s (s n)
14 "Triples of numbers <= n summing to s"
15 (filter
16 (lambda (triple)
17 (= (sum triple) s))
18 (unique-triples n)))