История изменений
Исправление red75prim, (текущая версия) :
практически коэрсия туплов в один тупл хуже ее отсутствия.
Это не коэрсия. Это разные способы представления гетерогенного списка произвольной длины.
Там нет никакого оверлоадинга. Вообще.
Да, встроенный в язык итератор по списку типов, позволяет обойтись без использования type-level рекурсии, с остановкой рекурсии с помощью оверлоадинга. Но принципиально это ничего не меняет.
Надеюсь, что вам известно об возможности записи любого рекурсивного алгоритма в итеративном виде и наоборот.
Он не может быть динамическим семантически, потому что там нигде не затирается тип.
Я уже несколько раз объяснял разницу между стиранием типов и параметрическим полиморфизмом. Но вы продолжаете некорректно употреблять термин стирание типов.
Мне это тоже начинает надоедать.
Так какие трудности возникают у вас с представлением о том, что тип может быть не стёрт и в динамике? Про динамически-типизированные языки слышали? Типы там в рантайме не стираются, функции все динамически-полиморфные. Какие проблемы?
Ваш же код с семантической точки зрения эквивалентен (T, impl Zip), а никакому не вариадику.
А ваш вариадик семантически эквивалентен List<TypeTaggedVar>
. Почему нет?
Исходная версия red75prim, :
практически коэрсия туплов в один тупл хуже ее отсутствия.
Это не коэрсия. Это разные способы представления гетерогенного списка произвольной длины.
Там нет никакого оверлоадинга. Вообще.
Да, встроенный в язык итератор по списку типов, позволяет обойтись без использования type-level рекурсии, с остановкой рекурсии с помощью оверлоадинга. Но принципиально это ничего не меняет.
Надеюсь, что вам известно об возможности записи любого рекурсивного алгоритма в итеративном виде и наоборот.
Он не может быть динамическим семантически, потому что там нигде не затирается тип.
Я уже несколько раз объяснял разницу между стиранием типов и параметрическим полиморфизмом. Но вы продолжаете некорректно употреблять термин стирание типов.
Мне это тоже начинает надоедать.
Так какие трудности возникают у вас с представлением о том, что тип может быть не стёрт и в динамике? Про динамически-типизированные языки слышали? Типы там в рантайме не стираются, функции все полиморфные. Какие проблемы?
Ваш же код с семантической точки зрения эквивалентен (T, impl Zip), а никакому не вариадику.
А ваш вариадик семантически эквивалентен List<TypeTaggedVar>
. Почему нет?