summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'elm/battlemap/src/Util')
-rw-r--r--elm/battlemap/src/Util/Array.elm14
-rw-r--r--elm/battlemap/src/Util/List.elm12
2 files changed, 26 insertions, 0 deletions
diff --git a/elm/battlemap/src/Util/Array.elm b/elm/battlemap/src/Util/Array.elm
new file mode 100644
index 0000000..8088244
--- /dev/null
+++ b/elm/battlemap/src/Util/Array.elm
@@ -0,0 +1,14 @@
+module Util.Array exposing (update)
+
+import Array
+
+update : (
+ Int ->
+ ((Maybe t) -> (Maybe t)) ->
+ (Array t) ->
+ (Array t)
+ )
+update index fun array =
+ case (fun (Array.get index array)) of
+ Nothing -> array
+ (Just e) -> (Array.set index e array)
diff --git a/elm/battlemap/src/Util/List.elm b/elm/battlemap/src/Util/List.elm
new file mode 100644
index 0000000..c4db397
--- /dev/null
+++ b/elm/battlemap/src/Util/List.elm
@@ -0,0 +1,12 @@
+module Util.List exposing (pop)
+
+import List
+
+pop : List a -> (Maybe (a, List a))
+pop l =
+ case
+ ((List.head l), (List.tail l))
+ of
+ (Nothing, _) -> Nothing
+ (_ , Nothing) -> Nothing
+ ((Just head), (Just tail)) -> (Just (head, tail))