두 가지 기능이 있습니다. 하나는 masterChecker
이고, Int x와 함수 p를 인수로 취하고 부울 결과 p (x)를 반환합니다. 그런 간단한. 그런 다음인수로 전달 된 수정 함수
def masterChecker(x: Int, p: Int => Boolean): Boolean = p(x)
나는 그것을 실행하는 것이라고 방식으로, childChecker
에 masterCheker
호출 f
을 변경할 수있는 방법이 있나요 masterChecker
def childChecker(x: Int, f: Int => Boolean): Boolean = masterChecker(x , f)
별칭처럼 제 2 기능 childChecker
을 가지고 !f
?
처럼을 (F 리턴 true의 경우는 것은 거짓하기보다) :
// inside childChecker
masterChecker(x, !f)
내가 !masterChecker(x,f)
으로 masterChecker 전화에 그것을 할 수 있다는 것을 알고 있지만, 내가 알고 싶은 것은 키우면 경우에 가능하다 인수로 전달 된 함수 동작을 변경합니다.
def childChecker(x: Int, f: Int => Boolean) = masterCheck(x, !f(_))
을하고 거기 당신은 간다 :
def proxy (x : Int)가'def proxy (y : Int)'가 아니겠습니까? – lpiepiora
@Ipiepiora 아니, 거기에 "y"를 의미했다. 그것은 전달 된 "x"가 아니라는 것을 강조하는 것입니다. "x"는 _3_을 추가하는 것과 같이 수정할 수 있습니다. – wheaties
여기서'y'가'f' 함수에 전달됩니다. 거기에 처음으로 나타납니다. – lpiepiora