diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-01-04 21:22:57 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-01-04 21:22:57 +0100 |
| commit | 5c3be6486e33ee6327f374b90abd49fb2ce3cd5b (patch) | |
| tree | 98aa59d6fe9b977192b44f3cafc182c9ac3b6f0f | |
| parent | 04d7fd7e6e3c5c56b809efb18e7c1a5dbb12d6b1 (diff) | |
| download | perlweeklychallenge-club-5c3be6486e33ee6327f374b90abd49fb2ce3cd5b.tar.gz perlweeklychallenge-club-5c3be6486e33ee6327f374b90abd49fb2ce3cd5b.tar.bz2 perlweeklychallenge-club-5c3be6486e33ee6327f374b90abd49fb2ce3cd5b.zip | |
Week 1: Scheme solutions
| -rw-r--r-- | challenge-001/abigail/README.md | 2 | ||||
| -rw-r--r-- | challenge-001/abigail/scheme/ch-1.scm | 26 | ||||
| -rw-r--r-- | challenge-001/abigail/scheme/ch-2.scm | 31 |
3 files changed, 59 insertions, 0 deletions
diff --git a/challenge-001/abigail/README.md b/challenge-001/abigail/README.md index 3965e2b75b..363ae8067d 100644 --- a/challenge-001/abigail/README.md +++ b/challenge-001/abigail/README.md @@ -26,6 +26,7 @@ count the number of time we encountered an 'e'. * [R](r/ch-1.r) * [Ruby](ruby/ch-1.rb) * [Tcl](tcl/ch-1.tcl) +* [Scheme](scheme/ch-1.scm) ## [Challenge #2](https://perlweeklychallenge.org/blog/perl-weekly-challenge-001/#challenge-2) @@ -56,3 +57,4 @@ upper bound from STDIN. * [R](r/ch-2.r) * [Ruby](ruby/ch-2.rb) * [Tcl](tcl/ch-2.tcl) +* [Scheme](scheme/ch-2.scm) diff --git a/challenge-001/abigail/scheme/ch-1.scm b/challenge-001/abigail/scheme/ch-1.scm new file mode 100644 index 0000000000..f1180850e1 --- /dev/null +++ b/challenge-001/abigail/scheme/ch-1.scm @@ -0,0 +1,26 @@ +;;; +;;; See https://theweeklychallenge.org/blog/perl-weekly-challenge-001 +;;; + +;;; +;;; Run as: guile --no-auto-compile ch-1.scm +;;; + + +(use-modules (ice-9 rdelim)) +(use-modules (ice-9 string-fun)) + +(define (main) + (define line (read-line)) + (if (not (eof-object? line)) + (begin + (display (string-replace-substring line "e" "E")) + (newline) + (display (string-count line #\e)) + (newline) + (main) + ) + ) +) + +(main) diff --git a/challenge-001/abigail/scheme/ch-2.scm b/challenge-001/abigail/scheme/ch-2.scm new file mode 100644 index 0000000000..f918118f17 --- /dev/null +++ b/challenge-001/abigail/scheme/ch-2.scm @@ -0,0 +1,31 @@ +;;; +;;; See https://theweeklychallenge.org/blog/perl-weekly-challenge-001 +;;; + +;;; +;;; Run as: guile --no-auto-compile ch-2.scm +;;; + + +(use-modules (ice-9 rdelim)) + +(define (show i) + (cond ((= (euclidean-remainder i 15) 0) "fizzbuzz") + ((= (euclidean-remainder i 5) 0) "buzz") + ((= (euclidean-remainder i 3) 0) "fizz" ) + (else i)) +) + +(define (main) + (define max (read-line)) + (if (not (eof-object? max)) + (begin + (do ((i 1 (1+ i))) + ((> i (string->number max))) + (display (show i)) (newline)) + (main) + ) + ) +) + +(main) |
