Today I Learned

함수형 코틀린 (1) 본문

Kotlin/다재다능 코틀린 프로그래밍

함수형 코틀린 (1)

하이라이터 2023. 9. 8. 14:56
728x90

함수형 스타일

함수형 스타일이 뭐야?

var doubleOfEven = mutableListOf<Int>()
for (i in 1..10) {
  if (i % 2 == 0) {
    doubleOfEven.add(i*2)
  }
}
  • 명령형 프로그래밍에서는 1부터 10 까지의 숫자 중에 짝수의 2배의 값을 계산하기 위해, 먼저 비어있는 뮤터블 리스트를 만든다.
  • 그리고 1~10 까지 값을 가지고 있는 콜렉션에서 짝수 값을 골라내고, 뮤터블 리스트에 짝수를 2배로 만들어서 추가한다.
val doubleOfEven = (1..10)
  .filter {e -> e % 2 == 0}
  .map {e -> e * 2}
  • 함수형 프로그래밍에서는 IntRange 클래스의 filter(), map() 같은 고차함수를 사용할 수 있다.
  • 뮤터블 리스트를 만들고 값을 반복적으로 추가하는 대신 1~10 까지의 값들에서 짝수만 필터링(filter)하고 선택된 값들을 두배로 만들어 맵(map)으로 만든다. 결과는 값들의 이뮤터블 리스트가 된다.
  • 이 코드를 실행하는 동안 뮤터블한 변수는 하나도 사용되지 않았다.

 

함수형 스타일은 왜, 언제 사용해야 하는가

  • 명령형 스타일은 익숙하다. 하지만 복잡하다. 익숙함 때문에 쓰기는 쉽지만 읽기가 매우 어렵다.
  • 함수형 스타일은 좀 덜 친숙하다. 하지만 단순하다. 익숙하지 않기 때문에 작성하기는 어렵지만, 읽기가 쉽다.
728x90
Comments