File tree Expand file tree Collapse file tree 1 file changed +19
-3
lines changed Expand file tree Collapse file tree 1 file changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ module Data.Array
88 , init
99 , null
1010 , map
11+ , mapMaybe
1112 , length
1213 , elem
1314 , elemIndex
@@ -79,7 +80,7 @@ foreign import length
7980 " function length (xs) {\
8081 \ return xs.length;\
8182 \}" :: forall a . [a ] -> Number
82-
83+
8384foreign import elem
8485 " function elem(e) {\
8586 \ return function (l) {\
@@ -100,7 +101,7 @@ foreign import elemLastIndex
100101 \ return l.lastIndexOf(e);\
101102 \ };\
102103 \}" :: forall a . a -> [a ] -> Number
103-
104+
104105foreign import append
105106 " function append (l1) {\
106107 \ return function (l2) {\
@@ -186,7 +187,7 @@ foreign import concatMap
186187 \ return result;\
187188 \ };\
188189 \}" :: forall a b . (a -> [b ]) -> [a ] -> [b ]
189-
190+
190191foreign import map
191192 " function map (f) {\
192193 \ return function (arr) {\
@@ -199,6 +200,21 @@ foreign import map
199200 \ };\
200201 \}" :: forall a b . (a -> b ) -> [a ] -> [b ]
201202
203+ foreign import mapMaybe
204+ " function mapMaybe (f) {\
205+ \ return function (arr) {\
206+ \ var l = arr.length, n = 0;\
207+ \ var result = new Array();\
208+ \ for (var i = 0; i < l; i++) {\
209+ \ var x = f(arr[i]);\
210+ \ if (x.ctor === 'Data.Maybe.Just') {\
211+ \ result[n++] = x.values[0];\
212+ \ }\
213+ \ }\
214+ \ return result;\
215+ \ };\
216+ \}" :: forall a b . (a -> Maybe b ) -> [a ] -> [b ]
217+
202218foreign import filter
203219 " function filter (f) {\
204220 \ return function (arr) {\
You can’t perform that action at this time.
0 commit comments