ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] 함수형 프로그래밍
    안드로이드 2020. 4. 1. 16:56

     

    오늘부터 코틀린 공부를 시작했다

     

    코틀린에선 함수형 프로그래밍 기법을 자주 사용한다고 하니 관련된 내용을 정리해보기로 했다.

     

    1. 함수형 프로그래밍이란?

    순수함수를 이용해 코드를 작성하는 프로그래밍 기법을 말한다.

    람다식고차 함수를 사용한다.

     

    2. 용어 정리

    순수함수 : 이름에서 힌트를 얻을 수 있듯이 함수 외부의 값을 참조하지 않고 변경하지도 않는 동시에 같은 인자에 대해 항상 같은 값을 반환해주는 함수

    fun multi(x: Int, y: Int): Int { return x*y }

     

    람다식 : 이름이 없는 함수 형태의 식

    { x, y -> x * y }

    다른 함수의 인자로 넘기거나 함수의 반환값으로 사용됨

     

    고차함수 : 다른 함수를 인자로 사용하거나 함수를 반환값으로 사용하는 함수

    fun addAndMulti2(x: Int, y: Int, multi: (Int, Int) -> Int) : Int{
    	val addResult = x + y
    	val finalResult = multi(addResult, 2)
    	return finalResult
    }
    
    val result = addAndMulti2(10, 20, {x, y -> x * y})

    위 예제는 x와 y 인자를 넘기면 ( x + y ) * 2 한 값을 반환해주는 함수이다.

    addAndMulti2 함수를 호출하는 부분부터 뜯어보자.

     

    10, 20, 그리고 위에서 본 람다식 형식의 함수가 인자로 넘어간다.

    그리고 addAndMulti2 함수의 선언을 보면 x, y 값을 받고 multi 라는 매개변수는 함수 형식으로 선언되어 있다.

    매칭되는 모습을 그림으로 보면 아래와 같다.

     

    이보다 완벽한 그림이 있을까

     

    댓글

Designed by Tistory.