A new call to rotate, an update to SE-0078

I uploaded the proposal as a draft pull request. It is based on SE-0078. I'm not actually working with the authors of that proposal (for now), but my version is pretty much a copy of their work. It doesn't have a commentary link listed; I guess this thread will serve as (the first) one.

It's oriented around the implementation I mentioned in my last thread. There's no implementation branch for the Swift repository yet. I don't know if the previous guys have one; it may be better to work with theirs instead of making a new one.

The pull request is still a draft because I still have some questions.

  • Does anyone know why towards-the-start is called "left" rotation and towards-the-end is "right"?
  • Should I remove the Sequence-level rotations? I'm thinking yes for now. (This would meant the "Rotated Copies" section would go too.)
  • Is the API-resilience section correct?
  • Should I mark the pull request title with "[WIP]" or similar?
  • How do I work on the PR some more? Do I have to download it again somehow? Or do I work on the branch I already made on my computer, then upload my local commits as needed to the fork on my GitHub account?

Are you familiar with the non-public implementation in the standard library prototype algorithms file?

I've seen it before. I may incorporate some of its algorithms as I improve the code.

I updated the pull request, removing the Sequence-level stuff, and linking to this discussion thread and a draft implementation.

I assume this is because humans write out sequences left-to-right when using a left-to-right language, so "left side" and "starting side" are equivalent. It's perhaps a bit unfortunate that such terms are not translatable.

As someone else responded to me, having an actual reference to the first computer-science use of the term is far better than our assumptions and speculation.