코틀린 (Kotlin) 컬렉션
코틀린 컬렉션 fun functionalFilter(numList : List<Int>) : List<Int> = numList.filter { it % 2 == 0 } 코드 간결성/가독성 향상 결과값을 저장하기 위한 별도의 리스트를 생성할 필요가 없다 비즈니스 로직에 집중 버그가 발생할 확률이 적다 테스트가 용이 유지보수가 용이 fun functionalMap(numList: List<Int>) : List<Int> { return numList.map { it + 2 } } map 함수는 내부적으로 새로운 리스트를 만들어서 반환 -> 부수효과 없음 tailrec fun<T, R> FunList<T>.map(acc: FunList<R> = FunList.Nil, f: (T) -> R): FunList<R> = when (this) { FunList.Nil -> acc.reverse() is FunList.Cons -> tail.map(acc.addHead(f(head)), f) } 제네릭과 고차함수를 활용해서 일반화된 함수를 만들고, 재사용성을 높이는 것이 함수적 접근 방식 명령형과 함수형의 차이 fun func(intList: List<Int>) = intList .map { n -> println("map=$n") n*n } .filter { n -> ...