3

아래 예제에서 inverse 함수를 제거하고 bar을 호출 할 때 익명 함수를 직접 작성하고 싶습니다. 누구든지 올바른 구문을 제안 할 수 있습니까? 몇 가지 변형을 시도했지만 컴파일 할 수는 없습니다.고차 함수를 익명 함수로 바꾸는 올바른 스칼라 구문은 무엇입니까?

object Test { 

    def foo(p: Int => Boolean): Boolean = { 
    def inverse(p: Int => Boolean): Int => Boolean = { 
     e: Int => !p(e) 
    } 

    bar(inverse(p)) 
    } 

    def bar(p: Int => Boolean): Boolean = true 

} 
+3

저는 스칼라를 모르지만,'bar ((e : Int) =>! p (e))'는 어떨까요? 편집 : 오류, 충분히 코드를 읽지 않았다 – ReyCharles

답변

12

이 유래이 대답은 너무 짧다 말한다

bar(!p(_)) 

작동합니다.

관련 문제