aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Russell <adamcrussell@outlook.com>2025-04-19 21:40:51 -0400
committerAdam Russell <adamcrussell@outlook.com>2025-04-19 21:40:51 -0400
commit9cce6277b8040b83b625c71cb321bd712122b48c (patch)
tree84cb2ac7e9c3c26e4df2bd184defce6ee0fa2b94
parent12021e81778c52397be0a638079eef5ea54abd36 (diff)
downloadperlweeklychallenge-club-9cce6277b8040b83b625c71cb321bd712122b48c.tar.gz
perlweeklychallenge-club-9cce6277b8040b83b625c71cb321bd712122b48c.tar.bz2
perlweeklychallenge-club-9cce6277b8040b83b625c71cb321bd712122b48c.zip
initial commit
-rw-r--r--challenge-317/adam-russell/blog.txt1
-rw-r--r--challenge-317/adam-russell/blog1.txt1
-rw-r--r--challenge-317/adam-russell/perl/ch-1.pl21
-rw-r--r--challenge-317/adam-russell/perl/ch-2.pl33
-rw-r--r--challenge-317/adam-russell/prolog/ch-1.p6
-rw-r--r--challenge-317/adam-russell/prolog/ch-2.p15
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.
+