Как написать лучшую запись типа сигнатуры в Haskell, которая наилучшим образом инкапсулирует идею о том, что функции нужно передать кортеж любой длины со всеми элементами X и список кортежей (одной длины) со всеми элементами Y?Тип безопасного размера одинакового кортежа.
Я не возражаю, если переданный тип является «реальным» кортежем некоторого альтернативного типа данных, если я могу обеспечить во время компиляции, что и кортеж, и список кортежей имеют одинаковую длину.
Tuple N X -> [Tuple N Y] -> Z
Длинного выстрел, но вы могли бы использовать DataKinds для создания собственных «векторов длиной индексированных», а затем использовать их, чтобы ограничить ваши параметры функции? https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/promotion.html – zoran119
Или используйте это: https://hackage.haskell.org/package/fixed-list-0.1.6 /docs/Data-FixedList.html – zoran119
Я подозреваю, что ни один из двух выше не достаточно общий :( – zoran119