aboutsummaryrefslogtreecommitdiff
path: root/challenge-269/deadmarshal/sml
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2024-05-17 02:01:27 -0400
committerdeadmarshal <adeadmarshal@gmail.com>2024-05-17 02:01:27 -0400
commit974e4b99fbb075faaf1847a5fb8c29f7f4f37609 (patch)
tree1b062949ccaf6df9c443d57608ef018e03db8bb4 /challenge-269/deadmarshal/sml
parent71c7bc98dd417eea21d8d731b35edb89bdd153f9 (diff)
downloadperlweeklychallenge-club-974e4b99fbb075faaf1847a5fb8c29f7f4f37609.tar.gz
perlweeklychallenge-club-974e4b99fbb075faaf1847a5fb8c29f7f4f37609.tar.bz2
perlweeklychallenge-club-974e4b99fbb075faaf1847a5fb8c29f7f4f37609.zip
TWC269
Diffstat (limited to 'challenge-269/deadmarshal/sml')
-rw-r--r--challenge-269/deadmarshal/sml/ch1.sml8
-rw-r--r--challenge-269/deadmarshal/sml/ch2.sml24
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-269/deadmarshal/sml/ch1.sml b/challenge-269/deadmarshal/sml/ch1.sml
new file mode 100644
index 0000000000..5058571cce
--- /dev/null
+++ b/challenge-269/deadmarshal/sml/ch1.sml
@@ -0,0 +1,8 @@
+fun bitwise_or lst =
+ List.length(List.filter(fn e => e mod 2 = 0) lst) > 1
+
+val _ =
+ print(Bool.toString(bitwise_or([1,2,3,4,5])) ^ "\n");
+ print(Bool.toString(bitwise_or([2,3,8,16])) ^ "\n");
+ print(Bool.toString(bitwise_or([1,2,5,7,9])) ^ "\n");
+
diff --git a/challenge-269/deadmarshal/sml/ch2.sml b/challenge-269/deadmarshal/sml/ch2.sml
new file mode 100644
index 0000000000..9c7da522bb
--- /dev/null
+++ b/challenge-269/deadmarshal/sml/ch2.sml
@@ -0,0 +1,24 @@
+fun distribute_elements lst =
+ let fun aux [] acc1 acc2 = acc1 @ acc2
+ | aux (x::xs) acc1 acc2 =
+ if (List.hd(List.rev acc1)) > (List.hd(List.rev acc2))
+ then aux xs (acc1 @ [x]) acc2
+ else aux xs acc1 (acc2 @ [x])
+ in
+ aux (List.tl (List.tl lst)) [List.hd lst] [List.hd(List.tl lst)]
+ end
+
+fun print_list(nil) = ()
+ | print_list(x::xs) = (
+ print(Int.toString(x));
+ print(" ");
+ print_list(xs);
+ print("\n")
+ );
+
+val _ = (
+ print_list(distribute_elements([2,1,3,4,5]));
+ print_list(distribute_elements([3,2,4]));
+ print_list(distribute_elements([5,4,3,8]))
+)
+