> On Apr 10, 2016, at 2:41 PM, Chris Lattner via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Hello Swift community,
> 
> The review of "A New Model for Collections and Indices" begins now and runs 
> through April 18th. The proposal is available here:
> 
>       
> https://github.com/apple/swift-evolution/blob/master/proposals/0065-collections-move-indices.md
> 
> Reviews are an important part of the Swift evolution process. All reviews 
> should be sent to the swift-evolution mailing list at:
>       https://lists.swift.org/mailman/listinfo/swift-evolution
> or, if you would like to keep your feedback private, directly to the review 
> manager.
> 
> 
> What goes into a review?
> 
> The goal of the review process is to improve the proposal under review 
> through constructive criticism and, eventually, determine the direction of 
> Swift. When writing your review, here are some questions you might want to 
> answer in your review:
> 
>       * What is your evaluation of the proposal?

I agree with the general direction and scope of the proposal, but I think the 
names could use some changes. Specifically, I don’t think the fallback to 
‘form’ is required. It would be a significant readability improvement to use a 
meaningful verb to describe the action of altering the argument. The methods 
that create new indices probably need a label on the first argument, because 
otherwise it looks as if the IndexDistance is what is described by ‘index’.

Proposed:

  func successor(of i: Index) -> Index
  func formSuccessor(i: inout Index)

Instead, I suggest:

  func successor(of i : Index) -> Index
  func advance(i: inout Index)

Proposed:

  func index(n: IndexDistance, stepsFrom i: Index) -> Index
  func index(n: IndexDistance, stepsFrom i: Index, limitedBy limit: Index) -> 
Index
  func formIndex(n: IndexDistance, stepsFrom i: inout Index)
  func formIndex(n: IndexDistance, stepsFrom i: inout Index, limitedBy limit: 
Index)

Suggested (taking into account Nate’s suggestion of reversing the order):

  func index(startingAt i: Index, movedBy n: IndexDistance) -> Index
  func index(startingAt i: Index, movedBy n: IndexDistance, limitedBy limit: 
Index) -> Index
  func move(i : inout Index, by n: IndexDistance)
  func move(i : inout Index, by n: IndexDistance, limitedBy limit: Index)

Proposed:

  func predecessor(of i: Index) -> Index
  func formPredecessor(i: inout Index)

Suggested:

  func predecessor(of i: Index) -> Index
  func reverse(i: inout Index)


I think reversing an index has some nice symmetry with reversing a sequence, 
but if it seems to confusing, then replace advance and reverse with 
‘moveForward’ and ‘moveBackward’.

- Tony

>       * Is the problem being addressed significant enough to warrant a change 
> to Swift?
>       * Does this proposal fit well with the feel and direction of Swift?
>       * If you have you used other languages or libraries with a similar 
> feature, how do you feel that this proposal compares to those?
>       * How much effort did you put into your review? A glance, a quick 
> reading, or an in-depth study?
> 
> More information about the Swift evolution process is available at
> 
>       https://github.com/apple/swift-evolution/blob/master/process.md
> 
> Thank you,
> 
> -Chris Lattner
> Review Manager
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to