diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-11 21:46:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-11 21:46:39 +0100 |
| commit | 0c9c48d70bf08a94d7f7eef6e8dc223a32980d91 (patch) | |
| tree | e52a5198853a7f900cef776332ab8c77e00652ae | |
| parent | ad53d02ac33fa22708da2c75b38f65d0ec16d51e (diff) | |
| parent | 6492618722ea0f84453ace698d094015a5d9b06b (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rw-r--r-- | challenge-320/adam-russell/prolog/ch-1.p | 27 | ||||
| -rw-r--r-- | challenge-320/adam-russell/prolog/ch-2.p | 22 |
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). + |
