LINUX.ORG.RU

История изменений

Исправление red75prim, (текущая версия) :

практически коэрсия туплов в один тупл хуже ее отсутствия.

Это не коэрсия. Это разные способы представления гетерогенного списка произвольной длины.

Там нет никакого оверлоадинга. Вообще.

Да, встроенный в язык итератор по списку типов, позволяет обойтись без использования type-level рекурсии, с остановкой рекурсии с помощью оверлоадинга. Но принципиально это ничего не меняет.

Надеюсь, что вам известно об возможности записи любого рекурсивного алгоритма в итеративном виде и наоборот.

Он не может быть динамическим семантически, потому что там нигде не затирается тип.

Я уже несколько раз объяснял разницу между стиранием типов и параметрическим полиморфизмом. Но вы продолжаете некорректно употреблять термин стирание типов.

Мне это тоже начинает надоедать.

Так какие трудности возникают у вас с представлением о том, что тип может быть не стёрт и в динамике? Про динамически-типизированные языки слышали? Типы там в рантайме не стираются, функции все динамически-полиморфные. Какие проблемы?

Ваш же код с семантической точки зрения эквивалентен (T, impl Zip), а никакому не вариадику.

А ваш вариадик семантически эквивалентен List<TypeTaggedVar>. Почему нет?

Исходная версия red75prim, :

практически коэрсия туплов в один тупл хуже ее отсутствия.

Это не коэрсия. Это разные способы представления гетерогенного списка произвольной длины.

Там нет никакого оверлоадинга. Вообще.

Да, встроенный в язык итератор по списку типов, позволяет обойтись без использования type-level рекурсии, с остановкой рекурсии с помощью оверлоадинга. Но принципиально это ничего не меняет.

Надеюсь, что вам известно об возможности записи любого рекурсивного алгоритма в итеративном виде и наоборот.

Он не может быть динамическим семантически, потому что там нигде не затирается тип.

Я уже несколько раз объяснял разницу между стиранием типов и параметрическим полиморфизмом. Но вы продолжаете некорректно употреблять термин стирание типов.

Мне это тоже начинает надоедать.

Так какие трудности возникают у вас с представлением о том, что тип может быть не стёрт и в динамике? Про динамически-типизированные языки слышали? Типы там в рантайме не стираются, функции все полиморфные. Какие проблемы?

Ваш же код с семантической точки зрения эквивалентен (T, impl Zip), а никакому не вариадику.

А ваш вариадик семантически эквивалентен List<TypeTaggedVar>. Почему нет?