У меня есть задание, в котором мне нужно взять кортеж и вернуть другой кортеж того же размера с измененными некоторыми элементами. Проблема в том, что я не знаю, как обработать кортеж неопределенного размера. Функция должна быть в состоянии обрабатывать кортежи любого размера. Моя идея состояла в том, чтобы превратить кортеж в список, который я мог бы обработать гораздо проще, создав рекурсивную вспомогательную функцию, чтобы взять элемент # 1 кортежа и превратить его в вызов той же функции, которая давала бы элемент # 2 рекурсия снова, пока не останется никаких элементов, но это просто дает ошибку, когда я добираюсь до # n + 1, где n - общее количество элементов в кортеже.
Я поступаю об этом неправильно? Есть ли способ найти размер кортежа? Есть ли способ справиться с этой ошибкой? Я знаю об обработке исключений, но я не уверен, как применить это к его случаю, если это возможно.
вопрос в том, чтобы создать функцию с именем subst, такую, чтобы subst (e ', x) e = [e' / x] e, т.е. функция subst заменяет любое свободное вхождение переменной x в выражении e 'на выражение е. Добавьте соответствующий случай для кортежей.