Functional Programming 3

[Kotlin] Interface와 Class

Interface 특징 다중 상속 가능 추상함수(Abstract) 가질 수 있음 함수 본문 구현 가능 여러 interface에서 같은 함수 가질 수 있음 추상 property 가질 수 있음 다중 상속 여러 인터페이스에 동일한 이름의 추상 함수가 선언되어 있다. 이 때, 다중 상속한 클래스에서는 어떻게 구분해서 호출하는지 다음을 보면 알 수 있다. fun main(args: Array) { val base: Base = Base() base.printA() // AAAAA base.printB() // BBBBB base.printC() // ACAC\nBCBC } interface A { fun printA() { println("AAAAA") } fun printC() { println("ACAC") ..

Kotlin 함수 선언 방법

fun f1(value: Int): Int { return value * 3 } fun f2(value: Int): Int = value * 2 fun f3(value: Int) = value * 2 {} 블록으로 감싸면 타입 추론을 하지 않기 때문에 함수 반환 타입을 명시해야 한다. 명시하지 않으면 Unit(Void) 타입으로 설정된다. 그리고 Java와 다르게 함수 파라미터 기본값을 설정할 수 있다. 그리고 호출할 때 순서를 고려하지 않아도 된다. 다음과 같이 할 수 있다. fun sum(x: Int = 10, y: Int = 5): Int = x + y println(sum(y = 3)) // 13 println(sum(y = 8, x = 6)) // 14 익명 함수, 람다 표현식 람다식을 이용해 ..

함수형 프로그래밍의 특징

데이터 처리의 참조 투명성을 보장하며, 상태와 가변 데이터 생성을 피하는 프로그래밍 패러다임이다. 특징 불변성(Immutable) 참조 투명성(Referential Transparency) 일급 함수(First Class Function) 게으른 평가(Lazy Evaluation) 동시성, 병렬성 동시성 프로그래밍에 적합하다. 동시성(Concurrency): 동시에 실행하는 것처럼 보이도록 하는 것 병렬성(Parallel): 실제로 물리적으로 동시에 돌아가는 것 코드 복잡도가 낮아 간결한 코드 작성 가능 순수 함수(Pure Function) 특징 y = f(x). 동일한 input은 동일한 output을 가짐. 상수가 아닌 전역 변수 등의 외부 변수를 이용하는 코드가 존재하면 순수 함수가 아니다. 부수효..

반응형