반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Java
- 크론 표현식
- 검색 기능 확장
- K번째수
- 루씬 인 액션
- 가장 큰 수
- 코딩 테스트
- @configuration
- 쿠버네티스
- 영속 자료구조
- H-index
- 완주하지 못한 선수
- kubenetes
- @Getter
- @Data
- 알고리즘
- 모던 자바 인 액션
- 고차원 함수
- 커링
- 스프링 스케쥴러
- @EnableScheduling
- 전화번호 목록
- 롬복 어노테이션
- 다리를 지나는 트럭
- 프로그래머스
- @Setter
- 해시
- 정렬
- 스택/큐
- 기능개발
Archives
- Today
- Total
Today I Learned
함수형 코틀린 (1) 본문
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
'Kotlin > 다재다능 코틀린 프로그래밍' 카테고리의 다른 글
내부 반복과 지연 연산 (0) | 2023.09.22 |
---|---|
람다를 사용한 함수형 프로그래밍(2) (0) | 2023.09.22 |
델리게이션을 통한 확장 (2) (0) | 2023.09.08 |
델리게이션을 통한 확장 (1) (0) | 2023.09.01 |
클래스 계층과 상속 (0) | 2023.08.24 |
Comments