728x90
코틀린은 함수형 프로그래밍, 객체 지향 프로그래밍을 모두 지원하는 다중 패러다임 언어
- 코드가 간략화되고 테스트나 재사용성이 더 좋아지고 개발 생산성 늘어남
함수형 프로그래밍
- 순수 함수를 작성하여 프로그램의 부작용을 줄이는 프로그래밍 기법
- 람다식 사용
- 고차 함수 사용
순수함수
- 같은 인자에 대하여 항상 같은 값 반환
- 함수 외부의 어떤 상태도 바꾸지 않음
- 스레드에 사용해도 안전
- 코드 테스트 쉬움
람다식 ( -> )
- 람다 대수에서 유래
- 이름이 없는 함수 (익명 함수)
- 2개 이상의 입력 -> 1개의 출력
{x, y -> x + y}
고차 함수
- 다른 함수를 인자로 사용하거나 함수를 결과 값으로 반환
fun main()
{
println(highFunc({x,y -> x + y}, 10, 20))
}
fun highFunc(sum : (Int, Int) -> Int, a : Int, b: Int): Int = sum(a + b)
fun aplusb(a : Int, b : Int) = a+b
fun sum(a: (Int,Int) -> Int, b : Int = 2, c : Int = 3) = a(b,c)
fun main() {
println(sum(::aplusb,3,5)) //참조에 의한 호출
}
728x90
'Kotlin' 카테고리의 다른 글
[코틀린] 함수 종류들 (0) | 2020.09.18 |
---|---|
[코틀린] 콜백 함수 (0) | 2020.09.18 |
[코틀린] 함수 선언 및 사용 (0) | 2020.09.18 |
[코틀린] Safe call과 non-null 단정자 (0) | 2020.09.18 |
[코틀린] 코틀린의 자료형 (0) | 2020.09.01 |
댓글