본문 바로가기
학습 log (이론)/kotlin

Kotlin기초 '함수형 프로그래밍'

by abbear25 2019. 11. 6.

함수형 프로그래밍

어떤 함수 f(x) = y와 같이

x를 넣으면 y 결과만을 출력하는 함수를 만드는 것 

 

순수함수

입력받은 변수만 사용하여 결과를 출력하는 함수

외부 변수를 참조하지 않음

 

고차함수

함수의 실행 결과를 다음 함수로 넘겨 순차적으로 동작하는 함수 집합

 

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //기본 사용법 {변수 정의 -> 함수 구현}
        //lambdas 변수 선언
        var anonymousFunc = {a:Int, b:Int -> a + b}
        //람다 기본 호출, anonymousFunc(10, 20)
        Log.e("err", anonymousFunc(10, 20).toString())
        //람다식 전달, 두 수 곱하기
        oFun{n,n2->n*n2}
        //람다식 및 값 전달
        tFun({n,n2->n+n2}, 5,5)
        //참조 값 전달 (이중 포인터)
        fFun(::addFun)
        //결과값: 30, 100, 10, 101
    }
    fun oFun(inFun: (Int, Int)-> Int){
        Log.e("err", inFun(10,10).toString())
    }
    fun tFun(inFun: (Int, Int)-> Int, a: Int, b: Int){
        Log.e("err", inFun(a, b).toString())
    }
    fun fFun(inFun: (Int) -> Int){
        Log.e("err", inFun(1).toString())
    }
    fun addFun(i: Int) : Int{
        return i+100
    }

}

 

변수 및 함수 선언

변수 선언

var 변수 = { 파라미터 -> 실행코드블록 }

 

일반함수 선언

fun 함수(변수명: 입력파리미터) : 반환 파라미터{  }

 

고차함수 선언

fun 함수(변수명: (입력 파라미터) -> 반환 파라미터){  }

 

변수 및 함수 호출

변수 기본 호출

  변수(변수 값 파라미터)

 

함수 람다식 전달

  함수{변수 정의 -> 함수 구현}

 

함수 람다식과 변수 값 전달

  함수({변수 정의 -> 함수 구현}, 변수 값...)

 

함수 참조 전달

  함수(::참조할 함수)

반응형

'학습 log (이론) > kotlin' 카테고리의 다른 글

Kotlin기초 'Closure'  (0) 2019.11.12
Kotlin기초 '유용한 함수'  (0) 2019.11.10
Kotlin기초 '객체'  (0) 2019.11.03
Kotlin기초 'Exception 처리'  (0) 2019.10.27
Kotlin기초 'Collection'  (0) 2019.10.24