스칼라에서는 내부 함수??를 만들어서 사용이 가능하다. 말보단 코드로...
object FilterTest extends App {
def filter(xs: List[Int], threshold: Int) = {
def process(ys: List[Int]): List[Int] =
if (ys.isEmpty) ys
else if (ys.head < threshold) ys.head :: process(ys.tail)
else process(ys.tail)
process(xs)
}
println(filter(List(1, 9, 2, 8, 3, 7, 4), 5))
}
filter라는 함수 내부에 process라는 함수가 정의 되어있고 process는 상황별로 재귀 호출이 되도록 구현이 되어져 있다.
위의 코드를 실행하게 되면 아래와 같은 결과가 나오게 된다.
List(1,2,3,4)
'Development > Programming' 카테고리의 다른 글
[Scala] Higher-order Functions (0) | 2015.02.18 |
---|---|
[Scala] Automatic Type-Dependent Closure Construction (0) | 2015.02.17 |
[Java Design Pattern] Design Patterns in Java Tutorial (0) | 2015.02.10 |
[Scala] Mixin Class Composition (0) | 2015.02.06 |
[Scala] Implicit Parameters (0) | 2015.02.03 |