diff options
| author | Adam Russell <adamcrussell@outlook.com> | 2025-05-11 13:03:07 -0400 |
|---|---|---|
| committer | Adam Russell <adamcrussell@outlook.com> | 2025-05-11 13:03:07 -0400 |
| commit | e73a6f9dae22ec456a182f49fdc7d8bb49599c5f (patch) | |
| tree | 499aaee6a38e06b7307ed8952387aecccc456017 | |
| parent | 2c6d46fba7dc3e812b7decb8f88265c92b4adb24 (diff) | |
| download | perlweeklychallenge-club-e73a6f9dae22ec456a182f49fdc7d8bb49599c5f.tar.gz perlweeklychallenge-club-e73a6f9dae22ec456a182f49fdc7d8bb49599c5f.tar.bz2 perlweeklychallenge-club-e73a6f9dae22ec456a182f49fdc7d8bb49599c5f.zip | |
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..6e4b4d0f16 --- /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). + |
