Skip to content

Commit f527161

Browse files
committed
Add takeWhile and dropWhile
1 parent 00ff8d2 commit f527161

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949

5050
drop :: forall a. Number -> [a] -> [a]
5151

52+
dropWhile :: forall a. (a -> Boolean) -> [a] -> [a]
53+
5254
elemIndex :: forall a. (Eq a) => a -> [a] -> Number
5355

5456
elemLastIndex :: forall a. (Eq a) => a -> [a] -> Number
@@ -107,6 +109,8 @@
107109

108110
take :: forall a. Number -> [a] -> [a]
109111

112+
takeWhile :: forall a. (a -> Boolean) -> [a] -> [a]
113+
110114
updateAt :: forall a. Number -> a -> [a] -> [a]
111115

112116
zipWith :: forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]

src/Data/Array.purs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ module Data.Array
4141
, group'
4242
, groupBy
4343
, span
44+
, dropWhile
45+
, takeWhile
4446
) where
4547

4648
import Control.Alt
@@ -354,6 +356,12 @@ span = go []
354356
go acc p (x:xs) | p x = go (x:acc) p xs
355357
go acc _ xs = { init: reverse acc, rest: xs }
356358

359+
takeWhile :: forall a. (a -> Boolean) -> [a] -> [a]
360+
takeWhile p xs = (span p xs).init
361+
362+
dropWhile :: forall a. (a -> Boolean) -> [a] -> [a]
363+
dropWhile p xs = (span p xs).rest
364+
357365
instance functorArray :: Functor [] where
358366
(<$>) = map
359367

0 commit comments

Comments
 (0)