summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ricketyspace/sicp/two/twenty.scm14
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)))