Swift Standard Library: Generators, Sequences and Collections(iosdeveloperzone.com)
iosdeveloperzone.com
Swift Standard Library: Generators, Sequences and Collections
http://iosdeveloperzone.com/2014/10/13/swift-standard-library-generators-sequences-and-collections/
3 comments
Could you perhaps add this to Github so others can make contributions to the database?
I probably should create an input screen, etc. I'm not familiar with AppEngine's datastore though. Anyway, I put the tsv on github.
https://github.com/melling/SwiftResource
The data is here:
https://github.com/melling/SwiftResource/blob/master/swift_u...
For this to work, I probably need scripts to prevent duplicates, etc.
https://github.com/melling/SwiftResource
The data is here:
https://github.com/melling/SwiftResource/blob/master/swift_u...
For this to work, I probably need scripts to prevent duplicates, etc.
this is a great collection. Thanks!
"So a generator is simply something that can give you the next element of some sequence of elements."
Is this a common usage of the word "generator"?
At least in JavaScript and Python you'd call that an "iterator", and a "generator" is a special type of function that acts as an iterator, using the "yield" keyword.
Is this a common usage of the word "generator"?
At least in JavaScript and Python you'd call that an "iterator", and a "generator" is a special type of function that acts as an iterator, using the "yield" keyword.
A generator is an iterator created and returned by a generator function.
the Sequence / Generator pattern in swift is analogous to IEnumerable, IEnumerator in .net, though I've found it's harder to implement.
Yes indeed. Swift lacks the "yield return" statement of C#.
Yet you can do well with "SequenceOf" and "GeneratorOf".
// Fibonacci sequence
let fib = SequenceOf { () -> GeneratorOf<Int> in
// Print Fibonacci numbers <= 1000
for e in fib {
println()
$ xcrun swift fib_test.swift
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
See http://www.oki-osk.jp/esc/swift/linq.html
// Fibonacci sequence
let fib = SequenceOf { () -> GeneratorOf<Int> in
var a = 0, b = 1
return GeneratorOf {
() -> Int? in
let c = a + b
a = b
b = c
return a
}
}// Print Fibonacci numbers <= 1000
for e in fib {
if e > 1000 {
break
}
print(" \(e)")
}println()
$ xcrun swift fib_test.swift
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
See http://www.oki-osk.jp/esc/swift/linq.html
http://www.h4labs.com/dev/ios/swift.html
And I just posted it to HN here:
https://news.ycombinator.com/item?id=8815739