: 여기 무엇을 의미하는지 '합니다 MyType = Int 인 => 부울'스칼라 선언 아래 무엇을 의미하는지
type MyType = Int => Boolean
내 이해입니다 :
나는 새로운 형태의 '합니다 MyType'을 선언하고 있습니다 만 고차 함수가 무엇을 의미하는지 '지능 => 부울'
: 여기 무엇을 의미하는지 '합니다 MyType = Int 인 => 부울'스칼라 선언 아래 무엇을 의미하는지
type MyType = Int => Boolean
내 이해입니다 :
나는 새로운 형태의 '합니다 MyType'을 선언하고 있습니다 만 고차 함수가 무엇을 의미하는지 '지능 => 부울'
그것은 너무 많은 새로운 유형을 별칭 선언으로 새로운 유형를 선언 아니에요. 그들은 여전히 같은 유형입니다 :하지만 별칭을 사용하면 좀 더 간결하게 작성할 수 있습니다.
Int => Boolean
은 하나의 인수 인 Int를 사용하고 부울을 반환하는 함수 유형입니다. 예를 들어
입력 Int => Boolean
을 가질 수있다 "이상 5"와 같은 기능 :
type MyType = Int => Boolean
val greaterThan5: MyType = (x: Int) => x > 5
greaterThan5(7) // true
당신은 다음과 같은 컴파일 올바른 :
다음type MyType = Int => Boolean
def positive(x: Int) = x > 0
val fun: MyType = positive
fun(42) //yields true
당신은 유형 별칭이 MyType
을 말하는 선언 Int
을 취하고 Boolean
을 반환하는 함수와 같습니다. 그런 선언과 일치하는 메소드를 작성합니다. 마지막으로이 메소드를 MyType
유형의 변수에 지정합니다. 그것을 컴파일하고 잘 작동합니다. 이 새로운 형태의 단지 별명, 아니라고
참고 :`지능 => Boolean`가 니펫 [코 세라]의 기인하지 않더라도 고차 함수 (_not_ 것을
trait MyType2 extends (Int => Boolean)
val fun2: MyType2 = positive _
error: type mismatch;
found : Int => Boolean
required: MyType2
val fun2: MyType2 = positive _
^
참고 (http://www.coursera.org/course/progfun) "Week 2 : Higher Order Functions"과제 :-)) – netzwerg
@netzwerg 예, '단순한'것조차 어렵다고 생각합니다. – user701254
걱정하지 마세요.이 함수는 매우 간단합니다. higher order 함수는 다른 함수를 입력 매개 변수로 사용하거나 다른 함수를 반환하거나 출력하는 함수입니다 ([Wikipedia] (http://en.wikipedia.org/wiki/Higher). -order_function)) – netzwerg