From 9d964b9bb2fc6df2fcaa6018fa6369f582996dab Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Mon, 6 Feb 2023 19:11:39 +0800 Subject: challeng 203, raku solutions --- challenge-203/feng-chang/raku/a/b/c/1/1.txt | 0 challenge-203/feng-chang/raku/a/b/c/2/2.txt | 0 challenge-203/feng-chang/raku/a/b/c/3/3.txt | 0 challenge-203/feng-chang/raku/a/b/c/5/5.txt | 0 challenge-203/feng-chang/raku/ch-1.raku | 5 +++++ challenge-203/feng-chang/raku/ch-2.raku | 20 ++++++++++++++++++++ 6 files changed, 25 insertions(+) create mode 100644 challenge-203/feng-chang/raku/a/b/c/1/1.txt create mode 100644 challenge-203/feng-chang/raku/a/b/c/2/2.txt create mode 100644 challenge-203/feng-chang/raku/a/b/c/3/3.txt create mode 100644 challenge-203/feng-chang/raku/a/b/c/5/5.txt create mode 100755 challenge-203/feng-chang/raku/ch-1.raku create mode 100755 challenge-203/feng-chang/raku/ch-2.raku diff --git a/challenge-203/feng-chang/raku/a/b/c/1/1.txt b/challenge-203/feng-chang/raku/a/b/c/1/1.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-203/feng-chang/raku/a/b/c/2/2.txt b/challenge-203/feng-chang/raku/a/b/c/2/2.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-203/feng-chang/raku/a/b/c/3/3.txt b/challenge-203/feng-chang/raku/a/b/c/3/3.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-203/feng-chang/raku/a/b/c/5/5.txt b/challenge-203/feng-chang/raku/a/b/c/5/5.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/challenge-203/feng-chang/raku/ch-1.raku b/challenge-203/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..8d609a3296 --- /dev/null +++ b/challenge-203/feng-chang/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(*@N); + +put @N.sort.combinations(4).grep({ .[0] + .[1] + .[2] == .[3] }).elems; diff --git a/challenge-203/feng-chang/raku/ch-2.raku b/challenge-203/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..5d6ec35da9 --- /dev/null +++ b/challenge-203/feng-chang/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/bin/env raku + +unit sub MAIN( + Str:D $source where *.IO.d = 'a/b/c', + Str:D $target where *.IO.d = 'x/y', +); + +my $offset; + +sub copy-dirs($source, $target) { + for $source.IO.dir -> $file { + next unless $file.d; + + mkdir "$target/{ $file.relative.substr($offset) }"; + copy-dirs($file, $target); + } +} + +$offset = $source.chars + 1; +copy-dirs($source, $target); -- cgit