0
저는 종종 이런 종류의 코드 변환 (또는 수학적 변환)을 교차합니다. (파이썬 예,하지만 모든 언어에 적용됩니다.)이 기호 코드 변환이란 무엇입니까?
내가
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))
에 함수 g을 변경 4에 이르게 너무
당신이 전화를 어떻게 함수의 종류를 국부적으로 스칼라로 바꾸는 변형?
예 그렇지만 f (x)가 시간 소모적 인 경우 (여기서는 해당되지 않음) 두 번째 경우의 g (f (2))는 첫 번째 경우의 g (2)의 두 배입니다. 이 종류의 코드 최적화에 대한 이름을 찾고 있습니다. – user352966
아, 무슨 뜻인지 알 겠어. 어쩌면 Memoization (http://en.wikipedia.org/wiki/Memoization)이라는 용어를 사용하면됩니까? 나도 기대/컴파일러 및/또는 실행 시간이 유형의 최적화를 보일 것입니다 바랍니다. – Paolo
는 패턴의 "최적화"부분에 대답 링크에 대한 감사합니다,하지만 난 더 "수학"이라는 용어를 찾고 있었다 : 또 다른 예를하기는 ODE 정의 수 있었다 :에 : Y '(t) = y (t)^2; y는 함수입니다. 방정식은 다시 쓸 수 있습니다 : f (t) = y (t)^2; 해결하려면 다음과 같이 새 함수를 작성하십시오. f2 (y, t) -> y^2; 여기서 y는 실수입니다. g (x)를 사용한 것과 정확히 같은 과정으로 f를 f2로 변형했습니다. "함수의 스칼라화"와 같은 것이 의미가 있습니다. 불행히도 그렇지 않습니다. – user352966