4 ms·
Yes indeed. Swift lacks the "yield return" statement of C#. Yet you can do well with "SequenceOf" and "GeneratorOf". // Fibonacci sequence let fib = Sequence
by suzuki 12y ago
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
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.oki-osk.jp/esc/swift/linq.html