Avatar
Collectionassociatedtype ShiftedCollection: Collection where ShiftedCollection.Element == Self.Element, ShiftedCollection.Index == Self.Index を付けて func shifted(by: Int) -> ShiftedCollection として、 ArrayShifted<Array<Element>>StringString を返すのがいいかなぁ。 shifted が O(1) か O(N) かが型によって変化するのが微妙かな。