diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-04-20 02:49:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-20 02:49:44 +0100 |
| commit | b2b26c315a6ebc026342b23619339fa67381fd5d (patch) | |
| tree | 69aaa843738a1b0c7d71815978e8e544e9837c14 | |
| parent | 7e813d6129f674e21c5c76e56e5ddfeb0ddbc2c3 (diff) | |
| parent | 9cce6277b8040b83b625c71cb321bd712122b48c (diff) | |
| download | perlweeklychallenge-club-b2b26c315a6ebc026342b23619339fa67381fd5d.tar.gz perlweeklychallenge-club-b2b26c315a6ebc026342b23619339fa67381fd5d.tar.bz2 perlweeklychallenge-club-b2b26c315a6ebc026342b23619339fa67381fd5d.zip | |
Merge pull request #11899 from adamcrussell/challenge-317
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. + |
