본문 바로가기
CS/Kotlin

함수형 프로그래밍의 특징은?

by upswp 2022. 2. 18.
  1. 함수를 일반값처럼 다룰 수 있습니다.
    • 만들어진 함수는 변수에 저장할 수 있습니다.
    • 함수를 인자로 다른 함수에게 전달할 수 있습니다.
    • 함수에서 새로운 함수를 만들어서 반환할 수 있습니다.
  2. 함수형 프로그래밍이 만들어지고 나면 내부의 상태가 절대로 바뀌지 않는 불변의 객체를 사용해 프로그램을 작성합니다.
  3. side effect가 없습니다.
    • 입력이 같으면 항상 같은 출력을 내놓습니다.
    • 다른 객체의 상태를 변경하지 않습니다.
    • 함수 외부나 바깥 환경과 상호작용하지 않는 순수 함수를 사용합니다.
  4. 간결합니다.
    • 함수형 코드는 그에 대응하는 "명령형 코드"에 비해 간결하고 우아합니다.
    • 함수를 값으로 가질 수 있게 되면서 "강력한 추상화"가 가능해집니다.
  5. Safe multithreading
    • 다중 스레드를 사용해도 안전합니다.
    • 불변 데이터 구조를 사용하고 순수 함수를 그 데이터 구조에 사용한다면, 다중 스레드 환경에서 같은 데이터를 여러 스레드가 변경할 수 없습니다.
  6. 테스트가 용의합니다.
    • 부수 효과가 있는 함수를 실행할 때는 준비 코드(setup code)가 따로 필요하지만, 순수 함수는 그런 준비 없이 독립적으로 테스트 할 수 있습니다.