Как называется это символическое преобразование кода? - PullRequest
0 голосов
/ 28 мая 2010

Я часто пересекаю этот вид преобразования кода (или даже математического преобразования). (Пример Python, но применяется к любому языку.)

У меня есть функция

def f(x):
  return x

Я использую это в другой.

def g(x):
  return f(x)*f(x)

print g(2)

приводит к 4

Но я хочу удалить функциональную зависимость и изменить функцию g на

def g(f):
  return f*f

print g( f(2) )

ведет к 4 тоже

Как вы называете такого рода преобразование, локально превращающее функцию в скаляр?

1 Ответ

0 голосов
/ 28 мая 2010

Я не уверен, что есть определенный термин для этого.

В общих чертах для функционального программирования обычно не делается различий между передачей скалярных аргументов и передачей функций в качестве аргументов.

В первом примере я все еще мог бы вызвать g(f(2)), и он должен вычислить f(f(2))*f(f(2)), что (поскольку f(x) - преобразование идентичности) также приведет к 4 в качестве ответа.

...