본문 바로가기
Kotlin

[코틀린] 함수형 프로그래밍

by Sky Titan 2020. 9. 18.
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

댓글