aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMárton Polgár <37218286+2colours@users.noreply.github.com>2025-11-16 21:36:09 +0100
committerGitHub <noreply@github.com>2025-11-16 21:36:09 +0100
commitef8a66a2f5474ad2e433c3b7f6fccbde2e6edc3c (patch)
tree7efe1fc10ccc6bbb953d2b62e749e3dbcc465224
parent2a1aee29adafce58080a4af004c5812b735ed304 (diff)
downloadperlweeklychallenge-club-ef8a66a2f5474ad2e433c3b7f6fccbde2e6edc3c.tar.gz
perlweeklychallenge-club-ef8a66a2f5474ad2e433c3b7f6fccbde2e6edc3c.tar.bz2
perlweeklychallenge-club-ef8a66a2f5474ad2e433c3b7f6fccbde2e6edc3c.zip
Add files via upload
-rw-r--r--challenge-347/2colours/prolog/ch-2.p12
1 files changed, 12 insertions, 0 deletions
diff --git a/challenge-347/2colours/prolog/ch-2.p b/challenge-347/2colours/prolog/ch-2.p
new file mode 100644
index 0000000000..a5bc91ba35
--- /dev/null
+++ b/challenge-347/2colours/prolog/ch-2.p
@@ -0,0 +1,12 @@
+:- use_module(library(dcg/basics)).
+:- use_module(library(dcg/high_order)).
+:- use_module(library(clpfd)).
+
+chunk(Chunk) --> { length(Chunk, 3) ; length(Chunk, 2) }, string(Chunk).
+
+task(Str, Result) :-
+ re_replace("[ -]"/g, "", Str, Str_Stripped),
+ string_codes(Str_Stripped, Codes_Stripped),
+ once(phrase(sequence(chunk, Chunks), Codes_Stripped)),
+ phrase(sequence(chunk, `-`, Chunks), Result_Codes),
+ string_codes(Result, Result_Codes).