diff options
| author | Márton Polgár <37218286+2colours@users.noreply.github.com> | 2025-11-11 03:38:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-11 03:38:53 +0100 |
| commit | d71bc022962d95241cb118ef2f235a48c8cf01e3 (patch) | |
| tree | 9797c3e89bc0b073124b2067f887cf7ddc651670 /challenge-346 | |
| parent | 7e9006d11542171357ec40ec42ed03919978ef98 (diff) | |
| download | perlweeklychallenge-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.p | 18 |
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). |
