Blame


1 665c255d 2023-08-04 jrmu (defun enumerate-interval (low high)
2 665c255d 2023-08-04 jrmu (if (> low high)
3 665c255d 2023-08-04 jrmu nil
4 665c255d 2023-08-04 jrmu (cons low (enumerate-interval (1+ low) high))))
5 665c255d 2023-08-04 jrmu (defun flatpmap (proc seq)
6 665c255d 2023-08-04 jrmu (accumulate #'append nil (mapcar proc seq)))
7 665c255d 2023-08-04 jrmu (defun sum (lst)
8 665c255d 2023-08-04 jrmu (accumulate #'+ 0 lst))
9 665c255d 2023-08-04 jrmu (defun prime-sum? (pair)
10 665c255d 2023-08-04 jrmu (prime? (sum pair)))
11 665c255d 2023-08-04 jrmu (defun make-pair-sum (pair)
12 665c255d 2023-08-04 jrmu (list (car pair) (cadr pair) (sum pair)))
13 665c255d 2023-08-04 jrmu (defun unique-pairs (n)
14 665c255d 2023-08-04 jrmu (flatmap
15 665c255d 2023-08-04 jrmu (lambda (i)
16 665c255d 2023-08-04 jrmu (mapcar (lambda (j) (list i j))
17 665c255d 2023-08-04 jrmu (enumerate-interval 1 (1- i))))
18 665c255d 2023-08-04 jrmu (enumerate-interval 1 n)))
19 665c255d 2023-08-04 jrmu (defun prime-sum-pairs (n)
20 665c255d 2023-08-04 jrmu (mapcar
21 665c255d 2023-08-04 jrmu #'make-pair-sum
22 665c255d 2023-08-04 jrmu (filter #'prime-sum? (unique-pairs n))))