Le 11 avr. 2016 à 14:36, Dave Abrahams <dabrah...@apple.com> a écrit :
> 3. The fact that we're migrating C-style for loops to > uses of stride, as noted in https://github.com/apple/swift/pull/2125, > has convinced me that, sadly, we may need an answer that doesn't > involve ranges. But maybe something like > > for x in loop(from: 0.1, while: { $0 < 10 }, next: { $0 + .2 }) > > is sufficient for this purpose. Please add that. First, it would relieve `stride` from some of the pressure of excelling at replacing existing C-style for loops. But it would also become pretty easy to write custom sequences like this one: func uniform(start: Double, end: Double, numberOfSteps totalSteps: Int) -> Sequence { var currentStep = 0 return loop(from: start, while: { _ in currentStep < totalSteps }, next: { _ in currentStep += 1 return start * (Double(totalSteps-currentStep) / Double(totalSteps)) + end * (Double(currentStep) / Double(totalSteps)) }) } Just don't call the function `loop`, as it does not return a loop. -- Michel Fortin https://michelf.ca _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution