;;; ;;; ;;; Pattern-matching against sequence of natural numbers ;;; ;;; ;; Extract all twin primes from the infinite list of prime numbers with pattern-matching! (define $twin-primes (match-all primes (list integer) [>> [p (+ p 2)]])) ;; Enumerate the first 10 twin primes (assert-equal "first 10 twin prime" (take 10 twin-primes) {[3 5] [5 7] [11 13] [17 19] [29 31] [41 43] [59 61] [71 73] [101 103] [107 109]}) ;; Extract all prime-triplets from the infinite list of prime numbers with pattern-matching! (define $prime-triplets (match-all primes (list integer) [>>> [p m (+ p 6)]])) ;; Enumerate the first 10 prime triplets (assert-equal "first 10 prime triplets" (take 10 prime-triplets) {[5 7 11] [7 11 13] [11 13 17] [13 17 19] [17 19 23] [37 41 43] [41 43 47] [67 71 73] [97 101 103] [101 103 107]})