Я часто перекрещиваю это преобразование кода (или даже математическое преобразование). (Пример Python, но относится к любому языку.)Что такое символическое преобразование кода?
Я пойти функцию
def f(x):
return x
Я использую его в другой.
def g(x):
return f(x)*f(x)
print g(2)
приводит к 4
Но я хочу, чтобы удалить функциональную зависимость, и я изменить функцию г в
def g(f):
return f*f
print g(f(2))
приводит к 4 слишком
Как вы называете это вид преобразования, локально превращая функцию в скаляр?
Да, но если f (x) занимает много времени (это не так) g (f (2)) во втором случае в два раза быстрее, чем g (2). Я ищу назначение для такого рода оптимизации кода. – user352966
А, я понимаю, что вы имеете в виду. В этом случае, возможно, Memoization (http://en.wikipedia.org/wiki/Memoization) - это термин, который вы используете? Я бы ожидал/надеюсь, что компилятор и/или время выполнения будут следить за этим типом оптимизации. – Paolo
Спасибо за ссылку, что ответить на «оптимизацию» часть картины, но я искал более «математический» термин: другого примера может быть, определение ОДЫ: в: у '(т) = y (t)^2; y - функция. Уравнение можно переписать: f (t) = y (t)^2; Чтобы решить эту проблему, вы создаете новую функцию: f2 (y, t) -> y^2; где в этом случае y является вещественным. Вы преобразовали f в f2 тем же самым процессом, который я сделал с g (x) Что-то вроде «скаляризации функции» имело бы смысл, к сожалению, это не так. – user352966