[swift-evolution] Passing an optional first argument to sequence(first:next:)

Maximilian Hünenberger m.huenenberger at me.com
Mon Aug 15 15:26:46 CDT 2016

Probably I didn't understand your proposal. What do you want to change exactly?

I thought:
public func sequence<T>(first: T, next: @escaping (T) -> T?) -> UnfoldFirstSequence<T> { ... }

public func sequence<T>(first: T?, next: @escaping (T) -> T?) -> UnfoldFirstSequence<T> { ... }

> Am 15.08.2016 um 22:17 schrieb Tim Vermeulen <tvermeulen at me.com>:
> You can’t; the `first` parameter has type `T`, not `T?`.
>> On 15 Aug 2016, at 22:10, Maximilian Hünenberger <m.huenenberger at me.com> wrote:
>> Hi Tim,
>> If you pass "nil" to "first" isn't this an empty sequence? So it would be redundant.
>> Best regards
>> Maximilian
>>> Am 15.08.2016 um 01:27 schrieb Tim Vermeulen via swift-evolution <swift-evolution at swift.org>:
>>> sequence(first:next:) takes a non-optional first argument. Is there a reason for that? sequence(state:next:) allows empty sequences, and I don’t see why sequence(first:next:) shouldn’t. The fix would be to simply add the `?` in the function signature; no other changes are required to make it work.
>>> I considered just filing a bug report, but since this is a change of the public API...
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution

More information about the swift-evolution mailing list