diff options
44 files changed, 2105 insertions, 1347 deletions
diff --git a/challenge-081/dave-jacoby/perl/ch-1.pl b/challenge-081/dave-jacoby/perl/ch-1.pl new file mode 100755 index 0000000000..44dccb6c91 --- /dev/null +++ b/challenge-081/dave-jacoby/perl/ch-1.pl @@ -0,0 +1,54 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use feature qw{ say signatures state }; +no warnings qw{ experimental }; + +my $comment = <<'DOC'; +You are given 2 strings, $A and $B. + +Write a script to find out common base strings in $A and $B. + +A substring of a string $S is called base string if repeated concatenation of the substring results in the string. + +Example 1: +Input: + $A = "abcdabcd" + $B = "abcdabcdabcdabcd" + +Output: + ("abcd", "abcdabcd") +Example 2: +Input: + $A = "aaa" + $B = "aa" + +Output: + ("a") +DOC + +common_base( "abcdabcd", "abcdabcdabcdabcd" ); +common_base( "aaa", "aa" ); + +sub common_base ( @words ) { + my ( $aa, $bb ) = sort { length $a <=> length $b } @words; + my %output; + + for my $i ( 0 .. length $aa ) { + for my $j ( 1 .. ( length $aa ) - $i ) { + my $aaa = $aa; + my $bbb = $bb; + my $sub = substr( $aa, $i, $j ); + my $pad = ' ' x $i; + $aaa =~ s/$sub//gmix; + $bbb =~ s/$sub//gmix; + next unless $aaa eq '' && $bbb eq ''; + # say qq{ $pad$sub\t$aaa\t$bbb}; + $output{$sub} = 1 if $aaa eq '' && $bbb eq ''; + } + + } + say join ', ', keys %output; +} + diff --git a/challenge-081/dave-jacoby/perl/ch-2.pl b/challenge-081/dave-jacoby/perl/ch-2.pl new file mode 100755 index 0000000000..bca7719a96 --- /dev/null +++ b/challenge-081/dave-jacoby/perl/ch-2.pl @@ -0,0 +1,34 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use feature qw{ say signatures state }; +no warnings qw{ experimental }; + +use List::Util qw{max}; + +my $file = $ARGV[0]; +$file = defined $file && -f $file ? $file : 'input'; + +frequency_sort($file); + +sub frequency_sort( $file ) { + if ( -f $file && open my $fh, '<', $file ) { + my $corpus = join '', <$fh>; + $corpus =~ s/[,\.\(\)\"]/ /g; + $corpus =~ s/\'s/ /g; + $corpus =~ s/--/ /g; + my %words; + for my $word ( split /\s+/, $corpus ) { + $words{$word}++; + } + my $max = max values %words; + + for my $c ( 1 .. $max ) { + my @words = sort grep { $words{$_} == $c } keys %words; + say join ' ', $c, @words, "\n" if scalar @words; + } + + close $fh; + } +} diff --git a/challenge-081/dave-jacoby/perl/input b/challenge-081/dave-jacoby/perl/input new file mode 100644 index 0000000000..37001629ad --- /dev/null +++ b/challenge-081/dave-jacoby/perl/input @@ -0,0 +1,3 @@ +West Side Story + +The award-winning adaptation of the classic romantic tragedy "Romeo and Juliet". The feuding families become two warring New York City gangs, the white Jets led by Riff and the Latino Sharks, led by Bernardo. Their hatred escalates to a point where neither can coexist with any form of understanding. But when Riff's best friend (and former Jet) Tony and Bernardo's younger sister Maria meet at a dance, no one can do anything to stop their love. Maria and Tony begin meeting in secret, planning to run away. Then the Sharks and Jets plan a rumble under the highway--whoever wins gains control of the streets. Maria sends Tony to stop it, hoping it can end the violence. It goes terribly wrong, and before the lovers know what's happened, tragedy strikes and doesn't stop until the climactic and heartbreaking ending. diff --git a/challenge-081/gugod/raku/ch-1.raku b/challenge-081/gugod/raku/ch-1.raku new file mode 100644 index 0000000000..b84d053ef5 --- /dev/null +++ b/challenge-081/gugod/raku/ch-1.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +# raku challenge-081/gugod/raku/ch-1.raku abcdabcd abcdabcdabcdabcd +# (abcd abcdabcd) + +sub MAIN (Str $A, Str $B) { + say common-base-string($A, $B); +} + +sub common-base-string (Str $A, Str $B) { + return ( base-string($A) ∩ base-string($B) ).keys; +} + +sub base-string (Str $s) { + return (1..$s.chars).grep( + -> $n { + ($s.chars mod $n == 0) + && ($s.substr(0,$n) x ($s.chars div $n)) eq $s + }).map(-> $n { $s.substr(0,$n) }); +} diff --git a/challenge-081/gugod/raku/ch-2.raku b/challenge-081/gugod/raku/ch-2.raku new file mode 100644 index 0000000000..62a014f118 --- /dev/null +++ b/challenge-081/gugod/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +sub MAIN (Str $input = 'input') { + print-frequency-table( word-frequency( IO::Path.new($input) ) ); +} + +sub word-frequency ( $fh ) { + my %freq; + my $prev = ''; + for $fh.split(/<?wb>/) -> $token { + if $token.match(/<:Letter>/) && !($token eq "s" && $prev eq "'") { + %freq{$token} += 1; + } + $prev = $token; + } + + return %freq; +} + +sub print-frequency-table ( %freq ) { + my %rfreq; + for %freq.pairs -> $it { + %rfreq{ $it.value }.append( $it.key ); + } + for %rfreq.keys.sort -> $n { + say $n ~ ' ' ~ %rfreq{$n}.sort.join(' '); + } +} diff --git a/challenge-081/jluis/README b/challenge-081/jluis/README new file mode 100644 index 0000000000..ff80e1d3bd --- /dev/null +++ b/challenge-081/jluis/README @@ -0,0 +1 @@ +Solution by jluis diff --git a/challenge-081/jluis/perl/ch-1.pl b/challenge-081/jluis/perl/ch-1.pl new file mode 100755 index 0000000000..0563d11964 --- /dev/null +++ b/challenge-081/jluis/perl/ch-1.pl @@ -0,0 +1,70 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use 5.010; + +if ($#ARGV != 1) { + say <<USAGE; + + Returns the comon base strigs + Base strings are those that can generte the original by repetition + + ch-1.pl "aaaa" "aaaaaaaaaaaa" + + returns ("a","aa","aa") the commom bases for the two strings +USAGE + exit; +} +my ($A,$B) = @ARGV; + +say format_list( common_base($A,$B) ); + +sub base { + # bassed on Abigail's prime number regex + # get all base strings of $_[0] + # a base string is one that concateneted 0 or more times can generate + # the original string + my $orig = shift; + my @bases; + my $length = 1; + while (1) { + last unless $orig =~ /^(.{$length,}?)\1+$/; + push @bases,$1; + $length = 1+length($1); + } + return (@bases,$orig) +} + +sub format_list { + my $out = "("; + while (my $val = shift) { + $out .= '"'.$val.'"'; + $out .= ',' if defined $_[0]; + } + return "$out)"; +} + +sub common_base { + my @A = base(shift); + my @B = base(shift); + my @result; + my $AIndex = 0; + my $BIndex = 0; + #Both arrays are ordered by the length of its strings + while ($AIndex <= $#A and $BIndex <= $#B) { + if ($A[$AIndex] eq $B[$BIndex]) { + push @result,$A[$AIndex]; + $AIndex += 1; + $BIndex += 1; + next; + } + last if length($A[$AIndex]) == length($B[$BIndex]); + if (length($A[$AIndex]) > length($B[$BIndex])) { + $BIndex += 1; + } else { + $AIndex += 1; + } + } + return @result; +} diff --git a/challenge-081/jluis/perl/ch-2.pl b/challenge-081/jluis/perl/ch-2.pl new file mode 100755 index 0000000000..a06a666220 --- /dev/null +++ b/challenge-081/jluis/perl/ch-2.pl @@ -0,0 +1,30 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; +say(<<USAGE) and exit if @ARGV; +finds the frequency of all the words of input + +ch-2.pl must be called without any parameters it operates on a file caled input on the current dir + +USAGE + +open(my $input,'<','input') or die "Can't open input: $!"; + +my %freq; +while(<$input>){ + chomp; + s/\.|"|\(|\)|,|'s|--/ /g; + while (/(\w+)/g) { + $freq{$1} = 0 unless defined $freq{$1}; + $freq{$1} += 1; + } +} + +my @results; +for my $key (sort keys %freq) { + $results[$freq{$key}] = "$freq{$key}" unless defined $results[$freq{$key}]; + $results[$freq{$key}] .= " $key"; +} + +defined($_) and say for @results; diff --git a/challenge-081/jo-37/perl/ch-1.pl b/challenge-081/jo-37/perl/ch-1.pl new file mode 100755 index 0000000000..61941ab415 --- /dev/null +++ b/challenge-081/jo-37/perl/ch-1.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +use Test2::V0; + +# Find common base strings in two given strings. +sub cbs { + + # Combine both strings by joining them with a newline. + # The strings must not contain newlines. + local $_ = shift . "\n" . shift; + + # Collect all common base strings. + # Note: "dot" does not match a newline here. + my @base; + m{ + ^ (.+?) \1*+ \n \1++ \z # capture base string for both + (?{push @base, $1}) # collect captured base string + (*FAIL) # force backtracking + }x; + + @base; +} + +is [cbs("abcdabcd", "abcdabcdabcdabcd")], ["abcd", "abcdabcd"], + "first example"; + +is [cbs("aaa", "aa")], ["a"], "second example"; + +is [cbs("abcabc", "abcdabcdabcd")], [], "no common base strings"; + +done_testing; diff --git a/challenge-081/jo-37/perl/ch-2.pl b/challenge-081/jo-37/perl/ch-2.pl new file mode 100755 index 0000000000..50f80268d7 --- /dev/null +++ b/challenge-081/jo-37/perl/ch-2.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use List::Util qw(uniqnum pairgrep pairkeys); + +# Use the input data provided by the DATA filehandle if no file name +# is given. +*ARGV = *DATA{IO} unless @ARGV; + +# Override some defaults: line endings, field separator and slurp mode +local ($\, $,, $/) = ("\n\n", ' '); + +# Build a hash of word/frequency pairs from input data. Incorporate +# specified exceptions into the split expression. +my %freq; +$freq{$_}++ foreach split qr{[\."),]*\s+[("]*|--|'s\s+}, <>; + +# For each frequency, extract the corresponding words from %freq, sort +# and print them. +# Note: "pairkeys" needs to be protected from being interpreted as a +# comparator sub name by sort. +print $_, sort +(pairkeys pairgrep {$b == $_} %freq) + foreach uniqnum sort {$a <=> $b} values %freq; + +__DATA__ +West Side Story + +The award-winning adaptation of the classic romantic tragedy "Romeo and Juliet". The feuding families become two warring New York City gangs, the white Jets led by Riff and the Latino Sharks, led by Bernardo. Their hatred escalates to a point where neither can coexist with any form of understanding. But when Riff's best friend (and former Jet) Tony and Bernardo's younger sister Maria meet at a dance, no one can do anything to stop their love. Maria and Tony begin meeting in secret, planning to run away. Then the Sharks and Jets plan a rumble under the highway--whoever wins gains control of the streets. Maria sends Tony to stop it, hoping it can end the violence. It goes terribly wrong, and before the lovers know what's happened, tragedy strikes and doesn't stop until the climactic and heartbreaking ending. diff --git a/challenge-081/juliodcs/perl/ch-1.pl b/challenge-081/juliodcs/perl/ch-1.pl new file mode 100644 index 0000000000..199408a21f --- /dev/null +++ b/challenge-081/juliodcs/perl/ch-1.pl @@ -0,0 +1,6 @@ +use strict;
+use warnings;
+use feature 'say';
+use List::MoreUtils 'uniq';
+
+say for uniq map { /^(.+)\1+$/; $1 // () } @ARGV;
diff --git a/challenge-081/juliodcs/perl/ch-2.pl b/challenge-081/juliodcs/perl/ch-2.pl new file mode 100644 index 0000000000..92b58fe97b --- /dev/null +++ b/challenge-081/juliodcs/perl/ch-2.pl @@ -0,0 +1,19 @@ +use strict;
+use warnings;
+use File::Slurp;
+use List::AllUtils qw(reduce uniq);
+use Const::Fast;
+use experimental 'signatures';
+
+const my $rx_words => qr/
+ (?<!\p{L}') # Don't match if preceded by word + 「'」
+ # (avoids matching 「s」 in 「word's」)
+ \p{L}++ (?>-\p{L}+)* # Match dash-separated words
+ (?>'(?!s\b)\p{L}+)? # It may end with 「'」 + word (except for 「's」)
+/ix;
+const my @words => read_file('input') =~ m/$rx_words/g;
+const my %scores => %{ +reduce { $a->{$b}++; $a } {}, @words };
+const my $add => sub($h, $w) { push $h->{$scores{$w}}->@*, $w; $h };
+const my %inverse => %{ +reduce { $add->($a, $b) } {}, keys %scores };
+
+printf "$_ %s\n\n", join q( ), sort @{$inverse{$_}} for sort keys %inverse;
diff --git a/challenge-081/juliodcs/perl/input b/challenge-081/juliodcs/perl/input new file mode 100644 index 0000000000..7c77fa54a9 --- /dev/null +++ b/challenge-081/juliodcs/perl/input @@ -0,0 +1,3 @@ +West Side Story
+
+The award-winning adaptation of the classic romantic tragedy "Romeo and Juliet". The feuding families become two warring New York City gangs, the white Jets led by Riff and the Latino Sharks, led by Bernardo. Their hatred escalates to a point where neither can coexist with any form of understanding. But when Riff's best friend (and former Jet) Tony and Bernardo's younger sister Maria meet at a dance, no one can do anything to stop their love. Maria and Tony begin meeting in secret, planning to run away. Then the Sharks and Jets plan a rumble under the highway--whoever wins gains control of the streets. Maria sends Tony to stop it, hoping it can end the violence. It goes terribly wrong, and before the lovers know what's happened, tragedy strikes and doesn't stop until the climactic and heartbreaking ending.
\ No newline at end of file diff --git a/challenge-081/juliodcs/raku/ch-1.raku b/challenge-081/juliodcs/raku/ch-1.raku new file mode 100644 index 0000000000..6ee984714b --- /dev/null +++ b/challenge-081/juliodcs/raku/ch-1.raku @@ -0,0 +1,3 @@ +use v6.d;
+
+say @*ARGS.map({ /^ (.+) $0+ $/; $0 }).grep(so *).map(~*).unique;
diff --git a/challenge-081/juliodcs/raku/ch-2.raku b/challenge-081/juliodcs/raku/ch-2.raku new file mode 100644 index 0000000000..c7e103f4ee --- /dev/null +++ b/challenge-081/juliodcs/raku/ch-2.raku @@ -0,0 +1,15 @@ +use v6.d;
+
+my $regex := rx/ :r # Don't backtrack
+ <!after <:L>「'」> # Don't match if preceded by word + 「'」
+ # (avoids matching 「s」 in 「word's」)
+ <:L>+ [「-」<:L>+]* # Match dash-separated words
+ [「'」<!before 「s」<ws>><:L>+]? # It may end with 「'」 + word (except for 「's」)
+/;
+
+my @words := ('input'.IO.slurp ~~ m:g/$regex/)>>.Str;
+my %score := ({}, |@words).reduce: { %^score{$^word}++; %^score }
+my $add := { %^data{$^pair.value}.push: $^pair.key; %^data }
+my %data := ({}, |%score.pairs).reduce: $add;
+
+printf "%s %s\n\n", .key, .value.sort.join: 「 」 for sort %data.pairs;
diff --git a/challenge-081/juliodcs/raku/input b/challenge-081/juliodcs/raku/input new file mode 100644 index 0000000000..7c77fa54a9 --- /dev/null +++ b/challenge-081/juliodcs/raku/input @@ -0,0 +1,3 @@ +West Side Story
+
+The award-winning adaptation of the classic romantic tragedy "Romeo and Juliet". The feuding families become two warring New York City gangs, the white Jets led by Riff and the Latino Sharks, led by Bernardo. Their hatred escalates to a point where neither can coexist with any form of understanding. But when Riff's best friend (and former Jet) Tony and Bernardo's younger sister Maria meet at a dance, no one can do anything to stop their love. Maria and Tony begin meeting in secret, planning to run away. Then the Sharks and Jets plan a rumble under the highway--whoever wins gains control of the streets. Maria sends Tony to stop it, hoping it can end the violence. It goes terribly wrong, and before the lovers know what's happened, tragedy strikes and doesn't stop until the climactic and heartbreaking ending.
\ No newline at end of file diff --git a/challenge-081/mohammad-anwar/perl/ch-2.pl b/challenge-081/mohammad-anwar/perl/ch-2.pl new file mode 100644 index 0000000000..2f9a27fbe5 --- /dev/null +++ b/challenge-081/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,58 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 081 +# +# Task #2: Frequency Count +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-081 +# + +use strict; +use warnings; + +frequency_count(fetch_words($ARGV[0])); + +# +# +# SUBROUTINES + +sub fetch_words { + my ($file) = @_; + + open(my $fh, "<:encoding(UTF-8)", $file) + or die "ERROR: Unable to open $file: $!\n"; + + my %words = (); + while (my $line = <$fh>) { + chomp $line; + $line =~ s/\.//g; + $line =~ s/\"//g; + $line =~ s/\(//g; + $line =~ s/\)//g; + $line =~ s/\,//g; + $line =~ s/\'s//g; + $line =~ s/\-\-/ /g; + foreach my $word (split /\s/, $line) { + $words{$word} += 1; + } + } + + close($fh); + + return \%words; +} + +sub frequency_count { + my ($words) = @_; + + my %frequency = (); + foreach my $word (keys %$words) { + $frequency{$words->{$word}} .= " " . $word; + } + + foreach my $count (sort { $a <=> $b } keys %frequency) { + my @words = split / /, $frequency{$count}; + printf("%d%s\n", $count, join(" ", sort @words)); + } +} diff --git a/challenge-081/mohammad-anwar/perl/input b/challenge-081/mohammad-anwar/perl/input new file mode 100644 index 0000000000..37001629ad --- /dev/null +++ b/challenge-081/mohammad-anwar/perl/input @@ -0,0 +1,3 @@ +West Side Story + +The award-winning adaptation of the classic romantic tragedy "Romeo and Juliet". The feuding families become two warring New York City gangs, the white Jets led by Riff and the Latino Sharks, led by Bernardo. Their hatred escalates to a point where neither can coexist with any form of understanding. But when Riff's best friend (and former Jet) Tony and Bernardo's younger sister Maria meet at a dance, no one can do anything to stop their love. Maria and Tony begin meeting in secret, planning to run away. Then the Sharks and Jets plan a rumble under the highway--whoever wins gains control of the streets. Maria sends Tony to stop it, hoping it can end the violence. It goes terribly wrong, and before the lovers know what's happened, tragedy strikes and doesn't stop until the climactic and heartbreaking ending. diff --git a/challenge-081/polettix/blog.txt b/challenge-081/polettix/blog.txt new file mode 100644 index 0000000000..70d6168bed --- /dev/null +++ b/challenge-081/polettix/blog.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2020/10/08/pwc081-common-base-string/ diff --git a/challenge-081/polettix/blog1.txt b/challenge-081/polettix/blog1.txt new file mode 100644 index 0000000000..2577d90c34 --- /dev/null +++ b/challenge-081/polettix/blog1.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2020/10/09/pwc081-frequency-sort/ diff --git a/challenge-081/polettix/perl/ch-1.pl b/challenge-081/polettix/perl/ch-1.pl new file mode 100644 index 0000000000..b48ea56f87 --- /dev/null +++ b/challenge-081/polettix/perl/ch-1.pl @@ -0,0 +1,69 @@ +#!/usr/bin/env perl +use 5.024; +use warnings; +use experimental qw< postderef signatures >; +no warnings qw< experimental::postderef experimental::signatures >; + +sub proper_factors ($n) { grep { $n % $_ == 0} (2 .. int($n/2))} + +sub min_period ($string) { + my $n = length $string; + + CANDIDATE: + for my $k (1, proper_factors($n)) { + my $m = $n / $k; # sub-sequences we have to test + for my $i (0 .. $k - 1) { # sub-sequence iterator + my $char = substr $string, $i, 1; + for my $s (1 .. $m - 1) { # sequence iterator + next CANDIDATE if $char ne substr $string, $k * $s + $i, 1; + } + } + # yay! + return $k; + } + + # nothing found, minimum period is the string's length + return $n; +} + +sub min_common_base ($A, $B) { + my $pA = min_period($A); + my $pB = min_period($B); + return if $pB != $pA; # they must be equal + my $candidate = substr $A, 0, $pA; + return $candidate if $candidate eq substr $B, 0, $pB; + return; +} + +sub common_bases ($A, $B) { + defined(my $b = min_common_base($A, $B)) or return; + + my $l = length $b; + my ($rA, $rB) = map {length($_) / $l} ($A, $B); + ($rA, $rB) = ($rB, $rA) if $rA > $rB; + + return map { $rB % $_ ? () : $b x $_ } (1, proper_factors($rA), $rA); +} + +sub common_bases_brute_force ($A, $B) { + my ($lA, $lB) = (length($A), length($B)); + ($A, $B, $lA, $lB) = ($B, $A, $lB, $lA) if $lA > $lB; + my @retval; + CANDIDATE: + for my $l (1 .. int($lA / 2), $lA) { + next CANDIDATE if ($lA % $l) || ($lB % $l); + my $base = substr $A, 0, $l; + for my $s ($A, $B) { + next CANDIDATE if $s ne $base x (length($s) / $l); + } + push @retval, $base; + } + return @retval; +} + +for my $input ( + ['abcdabcd', 'abcdabcdabcdabcd'], + ['aaa', 'aa'], +){ + say '(', join(', ', map {qq{"$_"}} common_bases_brute_force($input->@*)), ')'; +} diff --git a/challenge-081/polettix/perl/ch-2.pl b/challenge-081/polettix/perl/ch-2.pl new file mode 100644 index 0000000000..46124837c4 --- /dev/null +++ b/challenge-081/polettix/perl/ch-2.pl @@ -0,0 +1,48 @@ +#!/usr/bin/env perl +use 5.024; +use warnings; +use experimental qw< postderef signatures >; +no warnings qw< experimental::postderef experimental::signatures >; +use autodie; + +sub frequency_sort ($input = 'input') { + + # Allow for getting an open filehandle as input + my $fh = ref($input) ? $input : do {open my $fh, '<', $input; $fh}; + + # Count occurrences for all words, just for starters + my %count_for; + while (<$fh>) { + s{(?: [."(),] | 's | -- )+}{ }gmxs; # ignore stuff + $count_for{$_}++ for grep {length > 0} split m{\s+}mxs; + } + + # Invert "count by word" to "words by count" + my %words_for; + while (my ($word, $count) = each %count_for) { + push $words_for{$count}->@*, $word; + } + + say join "\n\n", map { + # Sort words for $count lexicographically + join ' ', $_, sort {$a cmp $b} $words_for{$_}->@*; + } sort {$a <=> $b} keys %words_for; +} + +frequency_sort(\*DATA); + +__DATA__ +West Side Story + +The award-winning adaptation of the classic romantic tragedy "Romeo and +Juliet". The feuding families become two warring New York City gangs, +the white Jets led by Riff and the Latino Sharks, led by Bernardo. Their +hatred escalates to a point where neither can coexist with any form of +understanding. But when Riff's best friend (and former Jet) Tony and +Bernardo's younger sister Maria meet at a dance, no one can do anything +to stop their love. Maria and Tony begin meeting in secret, planning to +run away. Then the Sharks and Jets plan a rumble under the +highway--whoever wins gains control of the streets. Maria sends Tony to +stop it, hoping it can end the violence. It goes terribly wrong, and +before the lovers know what's happened, tragedy strikes and doesn't stop +until the climactic and heartbreaking ending. diff --git a/challenge-081/roger-bell-west/blog.txt b/challenge-081/roger-bell-west/blog.txt new file mode 100644 index 0000000000..480796de5c --- /dev/null +++ b/challenge-081/roger-bell-west/blog.txt @@ -0,0 +1 @@ +https://blog.firedrake.org/archive/2020/10/Perl_Weekly_Challenge_81__Base_Frequency.html diff --git a/challenge-081/tyler-wardhaugh/clojure/README.md b/challenge-081/tyler-wardhaugh/clojure/README.md index 27344ef9cb..3a0c44fe10 100644 --- a/challenge-081/tyler-wardhaugh/clojure/README.md +++ b/challenge-081/tyler-wardhaugh/clojure/README.md @@ -1,29 +1,25 @@ -# tw.weekly.c80 +# tw.weekly.c81 -The Weekly Challenge - #080 - Tyler Wardhaugh +The Weekly Challenge - #081 - Tyler Wardhaugh ## Usage Run the project directly (shows default output from both tasks): - $ clojure -m tw.weekly.c80.core + $ clojure -M -m tw.weekly.c81.core Run the project's tests (which are samples from the task descriptions): |
