summaryrefslogtreecommitdiff
path: root/coding-exercises/2/41.rkt
blob: 0871313c772d5fdc0199945e54bd45587ffeebc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#lang racket
(require "../../shared/lists.rkt")

(define (ordered-triples-sum n s)
  (if (< n 3)
    '()
    (filter (lambda (triplet)
              (= (fold-right + 0 triplet) s))
            (flatmap (lambda (i)
                       (flatmap (lambda (pair)
                                 (permutations (cons i pair)))
                        (unique-pairs (- i 1))))
              (enumerate-interval 3 n)))))

((lambda ()
   (newline)
   (display (enumerate-interval 3 3))
   (newline)
   (display (ordered-triples-sum 4 8))))