Bump
On Fri, Jul 1, 2016 at 11:56 AM, T.J. Usiyan <[email protected]> wrote:
>
>
> ## The Issue
> Given
> ``` swift
> public protocol Zipper1D : CustomStringConvertible {
> associatedtype Element
> }
> ```
>
> We can almost write a `flatMap` which keeps the general identity of self
> and swaps out the Element in the output.
>
> ``` swift
> func flatMap<
> NewElement, SegmentOfResult : Collection, Output : Zipper1D where
> SegmentOfResult.Iterator.Element == NewElement, Output.Element ==
> NewElement>
> (_ transform: @noescape (Element) throws -> SegmentOfResult)
> rethrows -> Output
> ```
>
> ## The Proposal
> I propose that we allow `Type.withoutSpecialization`
>
> ``` swift
> func flatMap<
> NewElement, SegmentOfResult : Collection, Output : Zipper1D where
> SegmentOfResult.Iterator.Element == NewElement, Output.Element ==
> NewElement, Output.withoutSpecialization == Self.withoutSepcialization>
> (_ transform: @noescape (Element) throws -> SegmentOfResult)
> rethrows -> Output
> ```
>
>
> I recognize that generic protocols are another possible solution to this
> problem. I am pitching this because of how much closer this idea seems to
> being realized.
>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution