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
8
8
, init
9
9
, null
10
10
, map
11
+ , mapMaybe
11
12
, length
12
13
, elem
13
14
, elemIndex
@@ -79,7 +80,7 @@ foreign import length
79
80
" function length (xs) {\
80
81
\ return xs.length;\
81
82
\}" :: forall a . [a ] -> Number
82
-
83
+
83
84
foreign import elem
84
85
" function elem(e) {\
85
86
\ return function (l) {\
@@ -100,7 +101,7 @@ foreign import elemLastIndex
100
101
\ return l.lastIndexOf(e);\
101
102
\ };\
102
103
\}" :: forall a . a -> [a ] -> Number
103
-
104
+
104
105
foreign import append
105
106
" function append (l1) {\
106
107
\ return function (l2) {\
@@ -186,7 +187,7 @@ foreign import concatMap
186
187
\ return result;\
187
188
\ };\
188
189
\}" :: forall a b . (a -> [b ]) -> [a ] -> [b ]
189
-
190
+
190
191
foreign import map
191
192
" function map (f) {\
192
193
\ return function (arr) {\
@@ -199,6 +200,21 @@ foreign import map
199
200
\ };\
200
201
\}" :: forall a b . (a -> b ) -> [a ] -> [b ]
201
202
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
+
202
218
foreign import filter
203
219
" function filter (f) {\
204
220
\ return function (arr) {\
You can’t perform that action at this time.
0 commit comments