diff options
| author | razetime <rraghu.11502@gmail.com> | 2023-10-18 23:19:11 +0800 |
|---|---|---|
| committer | razetime <rraghu.11502@gmail.com> | 2023-10-18 23:19:26 +0800 |
| commit | b65e31895717139ba625abdfbcf7c59e41236f13 (patch) | |
| tree | 4e7d43f7860a92630e349ab5a4fa5e47e3ce753e /challenge-239 | |
| parent | eb89c85d8f90b18bb075d6bc49e009e38294ad39 (diff) | |
| download | perlweeklychallenge-club-b65e31895717139ba625abdfbcf7c59e41236f13.tar.gz perlweeklychallenge-club-b65e31895717139ba625abdfbcf7c59e41236f13.tar.bz2 perlweeklychallenge-club-b65e31895717139ba625abdfbcf7c59e41236f13.zip | |
razetime challenge 239 raku and prolog solutions
Diffstat (limited to 'challenge-239')
| -rw-r--r-- | challenge-239/razetime/README | 1 | ||||
| -rw-r--r-- | challenge-239/razetime/prolog/ch-1.pl | 6 | ||||
| -rw-r--r-- | challenge-239/razetime/prolog/ch-2.pl | 12 | ||||
| -rw-r--r-- | challenge-239/razetime/raku/ch-1.raku | 5 | ||||
| -rw-r--r-- | challenge-239/razetime/raku/ch-2.raku | 8 |
5 files changed, 32 insertions, 0 deletions
diff --git a/challenge-239/razetime/README b/challenge-239/razetime/README new file mode 100644 index 0000000000..29a919e5c3 --- /dev/null +++ b/challenge-239/razetime/README @@ -0,0 +1 @@ +Solution by razetime diff --git a/challenge-239/razetime/prolog/ch-1.pl b/challenge-239/razetime/prolog/ch-1.pl new file mode 100644 index 0000000000..ddeb4f911d --- /dev/null +++ b/challenge-239/razetime/prolog/ch-1.pl @@ -0,0 +1,6 @@ +:- use_module(library(lists)). +ch1(A,B):-append(A,R),append(B,R). + +?- ch1(["ab","c"],["a","bc"]). +?- ch1(["ab","c"],["ac","b"]). +?- ch1(["ab","cd","e"],["abcde"]). diff --git a/challenge-239/razetime/prolog/ch-2.pl b/challenge-239/razetime/prolog/ch-2.pl new file mode 100644 index 0000000000..391ad3599d --- /dev/null +++ b/challenge-239/razetime/prolog/ch-2.pl @@ -0,0 +1,12 @@ +:- use_module(library(lists)). +:- use_module(library(reif)). +:- use_module(library(ordsets)). +:- use_module(library(clpz)). + +ss_reif(A,B,true):-ord_subset(A,B). +ss_reif(_,_,false). + +ch2_([],_,0). +ch2_([X|S],A,R):-if_(ss_reif(X,A),(R#=Q+1,ch2_(S,A,Q)),ch2_(S,A,R)). + +ch2(S,A,R):-maplist(sort,S,T),sort(A,B),ch2_(T,B,R). diff --git a/challenge-239/razetime/raku/ch-1.raku b/challenge-239/razetime/raku/ch-1.raku new file mode 100644 index 0000000000..694c342ab2 --- /dev/null +++ b/challenge-239/razetime/raku/ch-1.raku @@ -0,0 +1,5 @@ +sub ch1{([~] $^a)===([~] $^b)} + +say ch1(("ab", "c"),("a", "bc")); # true +say ch1(("ab", "c"),("ac", "b")); # false +say ch1(("ab", "cd", "e"),("abcde")); # true diff --git a/challenge-239/razetime/raku/ch-2.raku b/challenge-239/razetime/raku/ch-2.raku new file mode 100644 index 0000000000..70af7f9d20 --- /dev/null +++ b/challenge-239/razetime/raku/ch-2.raku @@ -0,0 +1,8 @@ +sub ch2(@a,$b){ + my @c=$b.split("",:skip-empty); + @a.map({.split("",:skip-empty)}).grep({$_ (<=)@c}).elems +} + +say ch2(("ad", "bd", "aaab", "baa", "badab"),"ab"); +say ch2(("a", "b", "c", "ab", "ac", "bc", "abc"),"abc"); +say ch2(("cc", "acd", "b", "ba", "bac", "bad", "ac", "d"),"cad"); |
