История изменений
Исправление den73, (текущая версия) :
А в этом случае тупл превращается компилятором в запись для целей передачи, или это изображается как передача трёх отдельных параметров? Такие костыли в лиспе тоже можно написать и есть такие библиотеки, но это уже экзотика и именно что костыли, не для всех случаев сгодится и не очень хорошо выглядит в рантайме (реальная сигнатура функции будет содержать все поля тупла).
Но в общем, ты уже склоняешь меня к тому, что тупл полезен - именно как средство оптимизации. Для решения задач типизации в лиспе вместо тупла берутся макросы, а вот для того, чтобы не паковать данные в рекорды - польза может быть. С другой стороны, для отладки всё это будет больно, т.к. в отладчике будет выглядеть странно. Или нужно изрядно утолщать мою прокладку.
Я кстати, вспомнил, что я делал туплы в виде таких костылей для Firebird - там записей нет, а я их таким способом реализовал. Но там записей нет, поэтому туго было, а реализовать иначе чем через эн параметров было просто невозможно.
Исходная версия den73, :
А в этом случае тупл превращается компилятором в запись для целей передачи, или это изображается как передача трёх отдельных параметров? Такие костыли в лиспе тоже можно написать и есть такие библиотеки, но это уже экзотика и именно что костыли, не для всех случаев сгодится и не очень хорошо выглядит в рантайме (реальная сигнатура функции будет содержать все поля тупла).
Но в общем, ты уже склоняешь меня к тому, что тупл полезен - именно как средство оптимизации. Для решения задач типизации в лиспе вместо тупла берутся макросы, а вот для того, чтобы не паковать данные в рекорды - польза может быть. С другой стороны, для отладки всё это будет больно, т.к. в отладчике будет выглядеть странно. Или нужно изрядно утолщать мою прокладку.