, , , :
, . Theres a filter , , . , , , ? - , , :
func removeDupes<T: Hashable>(source: [T]) -> [T] {
var seen: [T:Bool] = [:]
return source.filter {
seen.updateValue(true, forKey: $0) == nil
}
}
removeDupes([1,2,3,1,1,2,4])
, , inout, - , , . ( reduce filter, , filter, , )
GeneratorOf, . , , .
, , m 0 n. GeneratorOf:
import Darwin
func randomGeneratorOf(#n: Int, #from: Int) -> GeneratorOf<Int> {
var select = UInt32(n)
var remaining = UInt32(from)
var i = 0
return GeneratorOf {
while i < from {
if arc4random_uniform(remaining) < select {
--select
--remaining
return i++
}
else {
--remaining
++i
}
}
return nil
}
}
var g = randomGeneratorOf(n: 5, from: 20)
println(",".join(map(g,toString)))
, - , , / , , , . .