diff options
| author | Shawn Wagner <shawnw.mobile@gmail.com> | 2023-02-20 08:58:30 -0800 |
|---|---|---|
| committer | Shawn Wagner <shawnw.mobile@gmail.com> | 2023-02-20 08:58:30 -0800 |
| commit | 3dae1a2b1bbf3762da3599a1d5db9044eace91f2 (patch) | |
| tree | 811a7cb1b3c3c7bbe3f897eac5864c183b5ac5a1 | |
| parent | a8851f754e8620a8fc8714f8e5bcc93263abd16b (diff) | |
| download | perlweeklychallenge-club-3dae1a2b1bbf3762da3599a1d5db9044eace91f2.tar.gz perlweeklychallenge-club-3dae1a2b1bbf3762da3599a1d5db9044eace91f2.tar.bz2 perlweeklychallenge-club-3dae1a2b1bbf3762da3599a1d5db9044eace91f2.zip | |
Challenge 205.2 in Racket
| -rw-r--r-- | challenge-205/shawn-wagner/racket/ch-2.rkt | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/challenge-205/shawn-wagner/racket/ch-2.rkt b/challenge-205/shawn-wagner/racket/ch-2.rkt new file mode 100644 index 0000000000..2d8d88e5b8 --- /dev/null +++ b/challenge-205/shawn-wagner/racket/ch-2.rkt @@ -0,0 +1,21 @@ +#lang racket/base + +(require racket/list racket/match) +(define (solution nums) + (for/fold ([num1 -1] + [num2 -1] + [max-xor 0]) + ([pair (in-combinations nums 2)]) + (match-let ([(list p1 p2) pair]) + (let ([xor (bitwise-xor p1 p2)]) + (if (> xor max-xor) + (values p1 p2 xor) + (values num1 num2 max-xor)))))) + +(define (demo n nums) + (let-values ([(n1 n2 xor) (solution nums)]) + (printf "Example ~A: The maximum result of ~A xor ~A = ~A~%" n n1 n2 xor))) + +(demo 1 '(1 2 3 4 5 6 7)) +(demo 2 '(2 4 1 3)) +(demo 3 '(10 5 7 12 8)) |
