aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwambash <wamba@centrum.cz>2022-04-09 18:17:00 +0200
committerwambash <wamba@centrum.cz>2022-04-09 18:17:00 +0200
commit3de3e9fe3a6f89f8cff77c678e739d8e38a07943 (patch)
tree176f175543dcbe056be05e927db3011f826d4343
parenta203f57e4ee1fca70d88bb91e58fbdda30493d69 (diff)
downloadperlweeklychallenge-club-3de3e9fe3a6f89f8cff77c678e739d8e38a07943.tar.gz
perlweeklychallenge-club-3de3e9fe3a6f89f8cff77c678e739d8e38a07943.tar.bz2
perlweeklychallenge-club-3de3e9fe3a6f89f8cff77c678e739d8e38a07943.zip
solution 159-1
-rw-r--r--challenge-159/wambash/raku/ch-1.raku25
1 files changed, 25 insertions, 0 deletions
diff --git a/challenge-159/wambash/raku/ch-1.raku b/challenge-159/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..8d2b1c0c5e
--- /dev/null
+++ b/challenge-159/wambash/raku/ch-1.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+
+sub farrey-sequence ($n) {
+ 1..$n
+ andthen .combinations(2)
+ andthen .map: { [/] $_ }\
+ andthen 0/1,|.sort, 1/1
+ andthen .squish
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is farrey-sequence(2), (0/1, 1/2, 1/1);
+ is farrey-sequence(5), (0/1, 1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 1/1);
+ is farrey-sequence(7), (0/1, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 2/5, 3/7, 1/2, 4/7, 3/5, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 1/1);
+ is farrey-sequence(4), (0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1);
+ done-testing;
+}
+
+multi MAIN (UInt $n) {
+ farrey-sequence $n
+ andthen .map: *.nude
+ andthen .map: *.fmt: '%d','/'
+ andthen .put
+}