aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-05-06 09:23:56 +0100
committerGitHub <noreply@github.com>2025-05-06 09:23:56 +0100
commit8de256fb30eb34b015a777387977c107fd350d74 (patch)
tree6b1a4ab4ed9459dfaeacd698e1f2c7734727dd17
parent4865a9cce3c19c5a1def20017a083f17ef9a0809 (diff)
parentdb8c735ff8ef74aca57f07c0d6e60a899477d1c7 (diff)
downloadperlweeklychallenge-club-8de256fb30eb34b015a777387977c107fd350d74.tar.gz
perlweeklychallenge-club-8de256fb30eb34b015a777387977c107fd350d74.tar.bz2
perlweeklychallenge-club-8de256fb30eb34b015a777387977c107fd350d74.zip
Merge pull request #11971 from adamcrussell/challenge-319
initial commit
-rw-r--r--challenge-319/adam-russell/blog.txt1
-rw-r--r--challenge-319/adam-russell/blog1.txt1
-rw-r--r--challenge-319/adam-russell/perl/ch-1.pl18
-rw-r--r--challenge-319/adam-russell/perl/ch-2.pl28
-rw-r--r--challenge-319/adam-russell/prolog/ch-1.p23
-rw-r--r--challenge-319/adam-russell/prolog/ch-2.p14
6 files changed, 85 insertions, 0 deletions
diff --git a/challenge-319/adam-russell/blog.txt b/challenge-319/adam-russell/blog.txt
new file mode 100644
index 0000000000..a0b8863fb9
--- /dev/null
+++ b/challenge-319/adam-russell/blog.txt
@@ -0,0 +1 @@
+http://www.rabbitfarm.com/cgi-bin/blosxom/perl/2025/05/04
diff --git a/challenge-319/adam-russell/blog1.txt b/challenge-319/adam-russell/blog1.txt
new file mode 100644
index 0000000000..00c6360c29
--- /dev/null
+++ b/challenge-319/adam-russell/blog1.txt
@@ -0,0 +1 @@
+http://www.rabbitfarm.com/cgi-bin/blosxom/prolog/2025/05/04
diff --git a/challenge-319/adam-russell/perl/ch-1.pl b/challenge-319/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..11bc6ba2ab
--- /dev/null
+++ b/challenge-319/adam-russell/perl/ch-1.pl
@@ -0,0 +1,18 @@
+
+
+use v5.40;
+
+
+ sub word_count{
+ return 0 + grep {
+ $_ =~ m/^[aeiou]/ || $_ =~ m/.*[aeiou]$/
+} @_;
+ }
+
+
+MAIN:{
+ say word_count qw/unicode xml raku perl/;
+ say word_count qw/the weekly challenge/;
+ say word_count qw/perl python postgres/;
+}
+
diff --git a/challenge-319/adam-russell/perl/ch-2.pl b/challenge-319/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..8126c1b25a
--- /dev/null
+++ b/challenge-319/adam-russell/perl/ch-2.pl
@@ -0,0 +1,28 @@
+
+
+use v5.40;
+
+ sub minimum_common{
+ my($u, $v) = @_;
+
+ my %h = ();
+ my %h_u = map {$_ => undef} @{$u};
+ my %h_v = map {$_ => undef} @{$v};
+ my $minimum = -1;
+ do{
+ $h{$_}++;
+ } for (keys %h_u, keys %h_v);
+ my @common = grep {$h{$_} > 1} keys %h;
+ if(0 < @common){
+ $minimum = (sort {$a <=> $b} @common)[0];
+ }
+
+ return $minimum;
+ }
+
+MAIN:{
+ say minimum_common [1, 2, 3, 4], [3, 4, 5, 6];
+ say minimum_common [1, 2, 3], [2, 4];
+ say minimum_common [1, 2, 3, 4], [5, 6, 7, 8];
+}
+
diff --git a/challenge-319/adam-russell/prolog/ch-1.p b/challenge-319/adam-russell/prolog/ch-1.p
new file mode 100644
index 0000000000..c319805a51
--- /dev/null
+++ b/challenge-319/adam-russell/prolog/ch-1.p
@@ -0,0 +1,23 @@
+
+
+ vowel(97). % a
+ vowel(101). % e
+ vowel(105). % i
+ vowel(111). % o
+ vowel(117). % u
+
+
+ start_end_vowel(Word, StartsEnds):-
+ ((nth(1, Word, FirstLetter),
+ vowel(FirstLetter));
+ (last(Word, LastLetter),
+ vowel(LastLetter))),
+ StartsEnds = true.
+ start_end_vowel(_, -1).
+
+
+ word_count(Words, Count):-
+ maplist(start_end_vowel, Words, StartsEndsAll),
+ delete(StartsEndsAll, -1, StartsEnds),
+ length(StartsEnds, Count).
+
diff --git a/challenge-319/adam-russell/prolog/ch-2.p b/challenge-319/adam-russell/prolog/ch-2.p
new file mode 100644
index 0000000000..83fc6eb2f3
--- /dev/null
+++ b/challenge-319/adam-russell/prolog/ch-2.p
@@ -0,0 +1,14 @@
+
+
+ minimum_common(List1, List2, MinimumCommon):-
+
+ subtract(List1, List2, Difference1),
+ subtract(List2, List1, Difference2),
+ append(Difference1, Difference2, Differences),
+ subtract(List1, Differences, Common),
+
+ length(Common, L),
+ L >= 1,
+ min_list(Common, MinimumCommon).
+ minimum_common(_, _, -1).
+