C # , Scala, Haskell, Lisp и Python ведут себя одинаково zip: если одна коллекция длиннее, хвост молча игнорируется.
Это может быть и исключение, но я не слышал ни о каком языке, использующем этот подход.
Это озадачивает меня. Кто-нибудь знает причину, почему так zipзадумано? Я предполагаю, что для новых языков это сделано, потому что другие языки делают это таким образом. Но какова была основная причина?
Я задаю здесь фактический, исторический вопрос, а не о том, нравится ли это кому-то или это хороший или плохой подход.
Обновление : если бы меня спросили, что делать, я бы сказал - сгенерировать исключение, почти так же, как индексирование массива (несмотря на то, что «старые» языки делали все возможное, как обрабатывать индекс за пределами границ, UB, расширять массив, и т.д).
zipWithIndexпредоставляя генератор натуральных чисел Теперь, только недостающая часть информации - то , что было его причиной? :-) (кстати. Пожалуйста, перепостите свой комментарий как ответ, спасибо).