diff options
| author | Adam Russell <adamcrussell@outlook.com> | 2025-04-19 21:40:51 -0400 |
|---|---|---|
| committer | Adam Russell <adamcrussell@outlook.com> | 2025-04-19 21:40:51 -0400 |
| commit | 9cce6277b8040b83b625c71cb321bd712122b48c (patch) | |
| tree | 84cb2ac7e9c3c26e4df2bd184defce6ee0fa2b94 | |
| parent | 12021e81778c52397be0a638079eef5ea54abd36 (diff) | |
| download | perlweeklychallenge-club-9cce6277b8040b83b625c71cb321bd712122b48c.tar.gz perlweeklychallenge-club-9cce6277b8040b83b625c71cb321bd712122b48c.tar.bz2 perlweeklychallenge-club-9cce6277b8040b83b625c71cb321bd712122b48c.zip | |
initial commit
| -rw-r--r-- | challenge-317/adam-russell/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-317/adam-russell/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-317/adam-russell/perl/ch-1.pl | 21 | ||||
| -rw-r--r-- | challenge-317/adam-russell/perl/ch-2.pl | 33 | ||||
| -rw-r--r-- | challenge-317/adam-russell/prolog/ch-1.p | 6 | ||||
| -rw-r--r-- | challenge-317/adam-russell/prolog/ch-2.p | 15 |
6 files changed, 77 insertions, 0 deletions
diff --git a/challenge-317/adam-russell/blog.txt b/challenge-317/adam-russell/blog.txt new file mode 100644 index 0000000000..0c142385b1 --- /dev/null +++ b/challenge-317/adam-russell/blog.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/perl/2025/04/17 diff --git a/challenge-317/adam-russell/blog1.txt b/challenge-317/adam-russell/blog1.txt new file mode 100644 index 0000000000..9a0384c566 --- /dev/null +++ b/challenge-317/adam-russell/blog1.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/prolog/2025/04/19 diff --git a/challenge-317/adam-russell/perl/ch-1.pl b/challenge-317/adam-russell/perl/ch-1.pl new file mode 100644 index 0000000000..eea23513d6 --- /dev/null +++ b/challenge-317/adam-russell/perl/ch-1.pl @@ -0,0 +1,21 @@ + + +use v5.40; + + + sub acronyms{ + my($word_list, $word) = @_; + my @first_letters = map{ + (split //, $_)[0] + } @{$word_list}; + return 1 if $word eq join q//, @first_letters; + return 0; + } + + +MAIN:{ + say acronyms([qw/Perl Weekly Challenge/], q/PWC/); + say acronyms([qw/Bob Charlie Joe/], q/BCJ/); + say acronyms([qw/Morning Good/], q/MM/); +} + diff --git a/challenge-317/adam-russell/perl/ch-2.pl b/challenge-317/adam-russell/perl/ch-2.pl new file mode 100644 index 0000000000..220ee69357 --- /dev/null +++ b/challenge-317/adam-russell/perl/ch-2.pl @@ -0,0 +1,33 @@ + + +use v5.40; + + sub friendly{ + my($u, $v) = @_; + + my $differences = []; + my @u = split //, $u; + my @v = split //, $v; + { + my $u_ = pop @u; + my $v_ = pop @v; + push @{$differences}, [$u_, $v_] unless $u_ eq $v_; + redo unless !@u || !@v; + } + + + return 1 if @{$differences} == 0; + return 0 if @{$differences} == 1 || @{$differences} > 2; + my @s = sort {$a cmp $b} @{$differences->[0]}; + my @t = sort {$a cmp $b} @{$differences->[1]}; + return 1 if $s[0] eq $t[0] && $s[1] eq $t[1]; + return 0; + + } + +MAIN:{ + say friendly q/desc/, q/dsec/; + say friendly q/cat/, q/dog/; + say friendly q/stripe/, q/sprite/; +} + diff --git a/challenge-317/adam-russell/prolog/ch-1.p b/challenge-317/adam-russell/prolog/ch-1.p new file mode 100644 index 0000000000..9bf7f11171 --- /dev/null +++ b/challenge-317/adam-russell/prolog/ch-1.p @@ -0,0 +1,6 @@ + + + acronym(Words, Word):- + maplist(nth(1), Words, FirstLetters), + Word = FirstLetters. + diff --git a/challenge-317/adam-russell/prolog/ch-2.p b/challenge-317/adam-russell/prolog/ch-2.p new file mode 100644 index 0000000000..3e54e3a36b --- /dev/null +++ b/challenge-317/adam-russell/prolog/ch-2.p @@ -0,0 +1,15 @@ + + + friendly(Word1, Word2):- + subtract(Word1, Word2, []), + length(Word1, Length), + findall(Difference, ( + between(1, Length, I), + nth(I, Word1, C1), + nth(I, Word2, C2), + \+ C1 = C2, + Difference = [C1, C2] + ), Differences), + length(Differences, NumberDifferences), + NumberDifferences == 2. + |
