File tree Expand file tree Collapse file tree 3 files changed +24
-0
lines changed Expand file tree Collapse file tree 3 files changed +24
-0
lines changed Original file line number Diff line number Diff line change 63
63
64
64
insertAt :: forall a. Prim.Number -> a -> [a] -> [a]
65
65
66
+ intersect :: forall a. (Eq a) => [a] -> [a] -> [a]
67
+
68
+ intersectBy :: forall a. (a -> a -> Prim.Boolean) -> [a] -> [a] -> [a]
69
+
66
70
last :: forall a. [a] -> Maybe a
67
71
68
72
length :: forall a. [a] -> Prim.Number
106
110
107
111
head :: forall a. [a] -> a
108
112
113
+ last :: forall a. [a] -> a
114
+
109
115
tail :: forall a. [a] -> [a]
Original file line number Diff line number Diff line change @@ -26,6 +26,8 @@ module Data.Array
26
26
, deleteBy
27
27
, delete
28
28
, (\\)
29
+ , intersectBy
30
+ , intersect
29
31
, concatMap
30
32
, filter
31
33
, range
@@ -214,6 +216,16 @@ infix 5 \\
214
216
go _ [] = []
215
217
go (x:xs) ys = go xs (delete x ys)
216
218
219
+ intersectBy :: forall a . (a -> a -> Boolean ) -> [a ] -> [a ] -> [a ]
220
+ intersectBy _ [] _ = []
221
+ intersectBy _ _ [] = []
222
+ intersectBy eq xs ys = filter el xs
223
+ where
224
+ el x = findIndex (eq x) ys >= 0
225
+
226
+ intersect :: forall a . (Eq a ) => [a ] -> [a ] -> [a ]
227
+ intersect = intersectBy (==)
228
+
217
229
foreign import concatMap
218
230
" function concatMap (f) {\
219
231
\ return function (arr) {\
Original file line number Diff line number Diff line change 1
1
module Data.Array.Unsafe where
2
2
3
+ import Prelude.Unsafe
4
+ import Data.Array (length )
5
+
3
6
head :: forall a . [a ] -> a
4
7
head (x : _) = x
5
8
6
9
tail :: forall a . [a ] -> [a ]
7
10
tail (_ : xs) = xs
11
+
12
+ last :: forall a . [a ] -> a
13
+ last xs = unsafeIndex xs (length xs - 1 )
You can’t perform that action at this time.
0 commit comments