diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ricketyspace/sicp/two/twenty.scm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/net/ricketyspace/sicp/two/twenty.scm b/net/ricketyspace/sicp/two/twenty.scm new file mode 100644 index 0000000..a48704a --- /dev/null +++ b/net/ricketyspace/sicp/two/twenty.scm @@ -0,0 +1,14 @@ +;;;; License: CC0-1.0 + +(define-module (net ricketyspace sicp two twenty) + #:export (same-parity)) + +(define (same-parity x . y) + (define x-parity (remainder x 2)) + (define (find nums) + (cond ((null? nums) '()) + ((= x-parity (remainder (car nums) 2)) + (cons (car nums) (find (cdr nums)))) + (else + (find (cdr nums))))) + (cons x (find y))) |