코틀린 (Kotlin) 함수형 프로그래밍
함수형 프로그래밍 불변성(immutable) 참조 투명성(referential transparency) 일급 함수(first-class-function) 게으른 평가(lazy evaluation) 순수한 함수 동일한 입력->동일한 결과 부수효과 없음 부수효과... 전역 변수, 객체 상태변경 파일, 네트워크 출력 예외발생 일급 함수 함수를 함수 매개변수로 사용 함수를 반환값으로 사용 함수를 변수에 저장 가능 게으른 평가 val lazy: String by lazy { //long work... } print(lazy) print(lazy) 값을 사용할 때 lazy{...} 작업이 실행되어 할당된다. 코드가 실행될때 할당되지 않기때문에 오래걸리는 작업을 필요할때 실행하여 작업을 효율적으로 동작가능. val 로만 가능하며 최초 한번만 할당되고 두번째부터는 값이 재사용된다. 시퀀스(sequence) val infinite = generatieSequence(0) { it + 10 } infinite.take(10).forEach {println("$it")} 실제 사용할때 사용되기때문에 무한대 자료구조로서 사용할 수 있다. Unit public object Unit { override fun toString() = "kotlin.Unit" } Unit 은 자바의 void 처럼 아무것도 반환하지 않을때 사용. Unit 은 참조형 타입이다. 확장함수 private fun String.addHelloPrefix(): String = "Hello, ${this}" if 조건 표현식 조건문을 구문과 표현식으로 사용할 수 있다. 표현식으로 사용된 경우 else 가 필요하며 변수에 할당할 수 있다. val x: Int...