From 9cce6277b8040b83b625c71cb321bd712122b48c Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sat, 19 Apr 2025 21:40:51 -0400 Subject: initial commit --- challenge-317/adam-russell/blog.txt | 1 + challenge-317/adam-russell/blog1.txt | 1 + challenge-317/adam-russell/perl/ch-1.pl | 21 ++++++++++++++++++++ challenge-317/adam-russell/perl/ch-2.pl | 33 ++++++++++++++++++++++++++++++++ challenge-317/adam-russell/prolog/ch-1.p | 6 ++++++ challenge-317/adam-russell/prolog/ch-2.p | 15 +++++++++++++++ 6 files changed, 77 insertions(+) create mode 100644 challenge-317/adam-russell/blog.txt create mode 100644 challenge-317/adam-russell/blog1.txt create mode 100644 challenge-317/adam-russell/perl/ch-1.pl create mode 100644 challenge-317/adam-russell/perl/ch-2.pl create mode 100644 challenge-317/adam-russell/prolog/ch-1.p create mode 100644 challenge-317/adam-russell/prolog/ch-2.p 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. + -- cgit