Делаем себе сложно

В пакете стандартной библиотеки slices есть функция Backward — итератор по элементам среза в обратном порядке:
func Backward[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]
Если вы не сильно погружены в тему дженериков и итераторов, то естественная реакция при взгляде на сигнатуру этой функции (и других из пакета slices) — «а что, нельзя попроще как-то было?».
Чтобы ответить на этот вопрос, проведем воображаемый эксперимент. Представим себя в роли нашего далекого предка, живущего в доитераторную эпоху, который решает реализовать Backward с нуля.
Сомнительно, но окэй →
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Habr