packages feed

egison-3.3.0: sample/sequence.egi

;;;
;;;
;;; Pattern-matching against sequence of natural numbers
;;;
;;;

; first 100 natural numbers
(test (take 100 nats))

; inifinite list of two-combinations of numbers
(define $pairs (match-all nats (list integer)
                 [<join _ (& <cons $m _> <join _ <cons $n _>>)>
                  [m n]]))

; test 'pairs'
(test (take 100 pairs))

; first 100 prime numbers
(test (take 100 primes))

; enumerate first 100 twin primes
(test (take 100 (match-all primes (list integer) [<join _ <cons $p <cons ,(+ p 2) _>>> [p (+ p 2)]])))