aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-05-11 21:46:39 +0100
committerGitHub <noreply@github.com>2025-05-11 21:46:39 +0100
commit0c9c48d70bf08a94d7f7eef6e8dc223a32980d91 (patch)
treee52a5198853a7f900cef776332ab8c77e00652ae
parentad53d02ac33fa22708da2c75b38f65d0ec16d51e (diff)
parent6492618722ea0f84453ace698d094015a5d9b06b (diff)
downloadperlweeklychallenge-club-0c9c48d70bf08a94d7f7eef6e8dc223a32980d91.tar.gz
perlweeklychallenge-club-0c9c48d70bf08a94d7f7eef6e8dc223a32980d91.tar.bz2
perlweeklychallenge-club-0c9c48d70bf08a94d7f7eef6e8dc223a32980d91.zip
Merge pull request #12002 from adamcrussell/challenge-320
Prolog solutions
-rw-r--r--challenge-320/adam-russell/blog1.txt1
-rw-r--r--challenge-320/adam-russell/prolog/ch-1.p27
-rw-r--r--challenge-320/adam-russell/prolog/ch-2.p22
3 files changed, 50 insertions, 0 deletions
diff --git a/challenge-320/adam-russell/blog1.txt b/challenge-320/adam-russell/blog1.txt
new file mode 100644
index 0000000000..8610812f65
--- /dev/null
+++ b/challenge-320/adam-russell/blog1.txt
@@ -0,0 +1 @@
+http://rabbitfarm.com/cgi-bin/blosxom/prolog/2025/05/11
diff --git a/challenge-320/adam-russell/prolog/ch-1.p b/challenge-320/adam-russell/prolog/ch-1.p
new file mode 100644
index 0000000000..f8aa1b85c0
--- /dev/null
+++ b/challenge-320/adam-russell/prolog/ch-1.p
@@ -0,0 +1,27 @@
+
+
+ identify_negatives(Number, 1):-
+ Number < 0.
+ identify_negatives(_, 0).
+
+
+ identify_positives(Number, 1):-
+ Number > 0.
+ identify_positives(_, 0).
+
+
+ count_negatives(Numbers, Count):-
+ maplist(identify_negatives, Numbers, Negatives),
+ sum_list(Negatives, Count).
+
+
+ count_positives(Numbers, Count):-
+ maplist(identify_positives, Numbers, Positives),
+ sum_list(Positives, Count).
+
+
+ maximum_count(Numbers, MaximumCount):-
+ count_negatives(Numbers, NegativesCount),
+ count_positives(Numbers, PositivesCount),
+ max_list([NegativesCount, PositivesCount], MaximumCount).
+
diff --git a/challenge-320/adam-russell/prolog/ch-2.p b/challenge-320/adam-russell/prolog/ch-2.p
new file mode 100644
index 0000000000..16b545b640
--- /dev/null
+++ b/challenge-320/adam-russell/prolog/ch-2.p
@@ -0,0 +1,22 @@
+
+
+ char_number(C, N):-
+ number_chars(N, [C]).
+
+
+ element_sum(Numbers, ElementSum):-
+ sum_list(Numbers, ElementSum).
+
+
+ digit_sum(Numbers, DigitSum):-
+ maplist(number_chars, Numbers, Characters),
+ flatten(Characters, CharactersFlattened),
+ maplist(char_number, CharactersFlattened, Digits),
+ sum_list(Digits, DigitSum).
+
+
+ sum_differences(Numbers, Differences):-
+ element_sum(Numbers, ElementSum),
+ digit_sum(Numbers, DigitSum),
+ Differences is abs(DigitSum - ElementSum).
+