From ac1bf1b75868c873037f742b727e79ee5a97bae2 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Fri, 24 Mar 2023 23:01:25 +0100 Subject: progress --- coding-exercises/2/62.rkt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 coding-exercises/2/62.rkt (limited to 'coding-exercises/2/62.rkt') diff --git a/coding-exercises/2/62.rkt b/coding-exercises/2/62.rkt new file mode 100644 index 0000000..705dcbd --- /dev/null +++ b/coding-exercises/2/62.rkt @@ -0,0 +1,15 @@ +#lang racket + +;; In each branch of the problem we either terminate the process or we reduce the problem to a subproblem with set - (car set) +(define (union-set set1 set2) + (cond ((and (null? set1) (null? set2)) '()) + ((null? set1) (cons (car set2) (union-set set1 (cdr set2)))) + ((null? set2) (cons (car set1) (union-set (cdr set1) set2))) + ((= (car set1) (car set2)) (cons (car set2) (union-set (cdr set1) (cdr set2)))) + ((> (car set1) (car set2)) (cons (car set2) (union-set set1 (cdr set2)))) + ((< (car set1) (car set2)) (cons (car set1) (union-set (cdr set1) set2))))) + +(define test-list (list 1 2)) +(define test-list2 (list 4 5 6 7)) +(union-set test-list test-list2) + -- cgit v1.2.3