diff options
| -rw-r--r-- | challenge-347/2colours/prolog/ch-2.p | 12 |
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). |
