Add function “drop” for discarding elements from a sequence.

This commit is contained in:
Kare Morstol
2014-10-24 20:26:00 +02:00
parent 1b78cab9fd
commit c04cd0d84b
2 changed files with 17 additions and 0 deletions
+9
View File
@@ -82,3 +82,12 @@ public func join<C : ExtensibleCollectionType, S : SequenceType where S.Generato
public func toArray <S : SequenceType, T where S.Generator.Element == T>(sequence: S) -> [T] {
return Array(sequence)
}
/** Discard all elements in `tobedropped` from sequence. */
public func drop <S: SequenceType, T: Equatable where S.Generator.Element == T>
(tobedropped: [T])
(sequence: S)
-> LazySequence<FilterSequenceView<S>> {
return sequence |> filter { !contains(tobedropped, $0) }
}
+8
View File
@@ -36,4 +36,12 @@ class Pipes_Tests: XCTestCase {
XCTAssertEqual( result, [4,1,6] )
}
func testDrop () {
let numbers = [1,2,3,4,5,6]
let result = numbers |> drop([2,3,5]) |> toArray
XCTAssertEqual( result, [1,4,6] )
}
}