def sum(f:Int=>Int)(a:Int,b:Int)={
def sumF(a:Int,b:Int):Int =
if(a<=b) f(a)+sumF(a+1,b)
else 0
sumF(a,b)
}
def sumLinear = sum((n)=>n) _
sumLinear(1,10)
def sumLinear = sum((n)=>n) _
여기에서 언더바를 사용하지 않으면 에러가 뜨는데, 여기에서 에러가 뜨는 이유는 closure의 문제 보단 sum(f)(a,b) 인자 생략의 문제인 것 같다!!! 어떤 인자가 올 자리라는 것을 표시하는 의미에서 _ 를 붙여야한다.
위의 sum def에서sumF는 언더바를 붙이든 안붙이든 에러가 생기지 않는다. 이는 inference를 해주기 때문이다.
def 안에 def 가 있을 때
'프로그래밍 > Scala' 카테고리의 다른 글
1101 Inheritance vs. Composition (0) | 2022.11.01 |
---|---|
Structure Type (0) | 2022.10.21 |
PART 1 - Currying (0926) (0) | 2022.10.20 |
HW 1. Exercise 1-2 보충 (1) | 2022.10.02 |
Tail Recursion 추가 포스팅 (1) | 2022.10.02 |