Wikipedia에 따라 :
컴퓨터 프로그래밍에서, 함수에 관한이 두 문장이 모두 유지되면 함수는 순수한 것으로 설명 될 수 있습니다. 함수는 항상 동일한 인수 값이 주어지면 동일한 결과 값을 평가합니다. 기능 결과 값은 프로그램 실행이 진행됨에 따라 또는 프로그램의 다른 실행간에 변경 될 수있는 숨겨진 정보 또는 상태에 의존 할 수 없으며 I / O 장치의 외부 입력에 의존 할 수도 없습니다. 결과의 평가는 변경 가능한 객체의 돌연변이 또는 I / O 장치로의 출력과 같이 의미 적으로 관찰 가능한 부작용 또는 출력을 유발하지 않습니다.
함수가 순수한지 여부를 계산하는 함수를 작성할 수 있는지 궁금합니다. 자바 스크립트의 예제 코드 :
function sum(a,b) {
return a+b;
}
function say(x){
console.log(x);
}
isPure(sum) // True
isPure(say) // False
if (rand(1000000)<2) return WRONG_ANSWER
들어와 같은 것이 있으면 일관된 동작을 위해 함수를 여러 번 조사해도 도움이되지 않습니다. 그러나 함수 정의에 액세스 할 수 있으면 증거는 간단합니다.