их вобще сравнивать с позиции "лучше-хуже" ? траверсабл и итерабл - разный апи для одной сути - обход поэлементно. Ничего кроме этого. Исходя из общего описания - ни там ни сям никаких гарантов даже нет, что эти элементы будут ограничены множеством которое ты хочешь обойти или что ты обойдешь гарантированно каждый элемент множества или не обойдешь какие-то элементы более одного раза. Ничего не гарантируется, кроме гаранта наличия апи для обхода. Более того - Итерабл (а точнее итератор, потому что итерабл лишь гарант получения итератора) - несколько более мощная концепция, поскольку траверсабл всегда может быть выражен через итерабл, а наоборот не всегда(а ведь итератор еще может быть и двунаправленный - здесь траверсабл сразу на лопатки ложится). То, про что ты толкуешь - это всего лишь частные реализации со своими гарантиями, но никак не часть общих определений.
Traverse просто более мощное определение, чем Foldable, так же, как Монада более мощное, чем Функтор
Обсуждают сегодня