summaryrefslogtreecommitdiff
blob: 9e57c18c315d0bf335637ae8ba8b422741c358d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Util.Array exposing
   (
      update,
      update_unsafe,
      filter_first
   )

import Array

update : (
      Int ->
      ((Maybe t) -> (Maybe t)) ->
      (Array.Array t) ->
      (Array.Array t)
   )
update index fun array =
   case (fun (Array.get index array)) of
      Nothing -> array
      (Just e) -> (Array.set index e array)

update_unsafe : (
      Int ->
      (t -> t) ->
      (Array.Array t) ->
      (Array.Array t)
   )
update_unsafe index fun array =
   case (Array.get index array) of
      Nothing -> array
      (Just e) -> (Array.set index (fun e) array)

filter_first : (t -> Bool) -> (Array.Array t) -> (Maybe t)
filter_first fun array =
   (Array.get 0 (Array.filter fun array))