📝 간단하게 쓰는 개발일기
함수형 코틀린
4장을 마무리했다.
람다, 고차 함수, 부수 효과와 순수 함수에 대해 공부했다.
정리
- 람다는 익명 함수를 부르는 말이다.
- Java의 람다는 클래스와 인터페이스의 인스턴스로서의 기능만 하지만 Kotlin의 람다는 그 자체가 하나의 타입으로서 기능한다.
- 람다에서 단일 인자의 경우 인자의 이름을 명시하지 않고 it 키워드로 대체 가능하다.
- 고차 함수는 함수를 매개변수로 받거나 반환할 수 있는 함수이다.
- 고차함수에서 함수를 반환하는 경우 호출 시 아래처럼 부모 파라미터(a=1)와 파라미터(it=3)를 모두 넘겨주어야 한다.
fun highOrderFunction(a: Int): (Int)->Unit {
return {
println("$a, $it")
}
}
fun main() {
highOrderFunction(1)(3)
}
- 부수 효과란 함수에서 해당 함수 영역 바깥의 객체나 변수에 접근하거나 수정하는 것을 말한다.
- IO 작업 등 에서 부수 효과는 피할 수 없지만, 함수형 프로그래밍에서 가능하면 부수 효과는 피해야 한다.
- 순수 함수란 자신의 인자에만 완전히 의존하는 함수를 말한다.
- 순수 함수는 어떤 상황에서, 몇 번 호출되더라도 항상 같은 결과를 낸다. (수학의 함수와 유사)