diff options
| author | Abigail <abigail@abigail.be> | 2021-11-02 18:07:08 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-02 18:07:08 +0100 |
| commit | 83c00ce954933e83073e4205e492201455209abe (patch) | |
| tree | 32337416a5f3de92f41bb99b96ee064ab1453d00 | |
| parent | 75d8c0ad0b6724039e865e1d6e61630575ada351 (diff) | |
| download | perlweeklychallenge-club-83c00ce954933e83073e4205e492201455209abe.tar.gz perlweeklychallenge-club-83c00ce954933e83073e4205e492201455209abe.tar.bz2 perlweeklychallenge-club-83c00ce954933e83073e4205e492201455209abe.zip | |
Scheme solutions for week 137
| -rw-r--r-- | challenge-137/abigail/scheme/ch-1.scm | 33 | ||||
| -rw-r--r-- | challenge-137/abigail/scheme/ch-2.scm | 35 |
2 files changed, 68 insertions, 0 deletions
diff --git a/challenge-137/abigail/scheme/ch-1.scm b/challenge-137/abigail/scheme/ch-1.scm new file mode 100644 index 0000000000..8d37395619 --- /dev/null +++ b/challenge-137/abigail/scheme/ch-1.scm @@ -0,0 +1,33 @@ +;;; +;;; See ../README.md +;;; + +;;; +;;; Run as: guile --no-auto-compile ch-1.scm +;;; + +(use-modules (ice-9 format)) + +(define start-years (list 1600 2000)) +(define long-year-offsets (list + 004 009 015 020 026 032 037 043 048 054 060 065 071 076 082 + 088 093 099 105 111 116 122 128 133 139 144 150 + 156 161 167 172 178 184 189 195 201 207 212 218 + 224 229 235 240 246 252 257 263 268 274 280 285 291 296 + 303 308 314 320 325 331 336 342 348 353 359 364 370 + 376 381 387 392 398 +)) + +(define (check-year start-year offset) + (define year (+ start-year offset)) + (if (and (<= 1900 year) (<= year 2100)) + (format #t "~d~%" year))) + + +(for-each + (lambda (start-year) + (for-each + (lambda (offset) + (check-year start-year offset)) + long-year-offsets)) + start-years) diff --git a/challenge-137/abigail/scheme/ch-2.scm b/challenge-137/abigail/scheme/ch-2.scm new file mode 100644 index 0000000000..dc17dee619 --- /dev/null +++ b/challenge-137/abigail/scheme/ch-2.scm @@ -0,0 +1,35 @@ +;;; +;;; See ../README.md +;;; + +;;; +;;; Run as: guile --no-auto-compile ch-2.scm +;;; + +(use-modules (ice-9 format)) + +(define (reverse num) + (define rev 0) + (while (> num 0) + (set! rev (* rev 10)) + (set! rev (+ rev (modulo num 10))) + (set! num (truncate (/ num 10))) + ) + rev +) + +(define (ly n) + (cond ((>= n 10000000) 1) + ((= n (reverse n)) 0) + (else (ly (+ n (reverse n)))))) + + +(define (main) + (define num (read)) + (if (not (eof-object? num)) + (begin + (format #t "~d~%" (ly num)) + (main)))) + + +(main) |
