aboutsummaryrefslogtreecommitdiff
path: root/challenge-346
diff options
context:
space:
mode:
authorMárton Polgár <37218286+2colours@users.noreply.github.com>2025-11-11 03:38:53 +0100
committerGitHub <noreply@github.com>2025-11-11 03:38:53 +0100
commitd71bc022962d95241cb118ef2f235a48c8cf01e3 (patch)
tree9797c3e89bc0b073124b2067f887cf7ddc651670 /challenge-346
parent7e9006d11542171357ec40ec42ed03919978ef98 (diff)
downloadperlweeklychallenge-club-d71bc022962d95241cb118ef2f235a48c8cf01e3.tar.gz
perlweeklychallenge-club-d71bc022962d95241cb118ef2f235a48c8cf01e3.tar.bz2
perlweeklychallenge-club-d71bc022962d95241cb118ef2f235a48c8cf01e3.zip
Create ch-2.p
Diffstat (limited to 'challenge-346')
-rw-r--r--challenge-346/2colours/prolog/ch-2.p18
1 files changed, 18 insertions, 0 deletions
diff --git a/challenge-346/2colours/prolog/ch-2.p b/challenge-346/2colours/prolog/ch-2.p
new file mode 100644
index 0000000000..7afa2f7d2f
--- /dev/null
+++ b/challenge-346/2colours/prolog/ch-2.p
@@ -0,0 +1,18 @@
+:- use_module(library(dcg/basics)).
+:- use_module(library(dcg/high_order)).
+
+
+operator --> `*`.
+operator --> `+`.
+operator --> `-`.
+operator --> ``.
+
+good_expression(Str, Target, Expression) :-
+ string_codes(Str, Str_Codes),
+ phrase(sequence(digit, operator, Str_Codes), Expression_Codes),
+ string_codes(Expression, Expression_Codes),
+ read_term_from_atom(Expression, Term, []),
+ Term =:= Target.
+
+
+task(Str, Target, Expressions) :- findall(Expression, good_expression(Str, Target, Expression), Expressions).