일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Map
- 머신러닝
- hackerrank
- stl
- 스프링프레임워크
- 스프링 프레임워크
- spring
- 블로그개설
- git
- 프로그래머스
- 연결리스트
- Rebase
- 프로그래밍
- DP
- 스프링
- c
- BFS
- 안드로이드
- 백준
- 백트래킹
- retrofit
- Android
- 인코더
- c++
- Kotlin
- python3
- TensorFlow
- 카카오인코더
- ADAS
- vue.js
- Today
- Total
이것저것 공부한 기록
[Kotlin] 함수형 프로그래밍, 순수 함수, 1급 시민 함수 본문
함수형 프로그래밍 (Functional Programming)
- 선언형 프로그래밍( Declarative Programming )의 한 갈래
- 자료 처리를 수학적 함수의 계산으로 취급하고, 상태와 가변 데이터의 개념을 멀리하는 프로그래밍 패러다임.
- 상태를 바꾸는 것을 최대한 배제하고, 구현에 있어 함수를 응용할 것을 강조한다.
- 최소 단위 함수로 구성하고, 모든 함수가 같은 인자에 대해 한결같은 결과값을 출력하도록 하여 프로그램의 동작을 쉽게 이해하고 예측할 수 있게 하는 개발 방법.
- 장점 : 코드가 간결하다. 멀티스레드 환경에서도 안전하다. 테스트하기 쉽다.
순수 함수 (Pure function)
- 함수의 실행이 외부에 영향을 끼치지 않는 함수
- 함수에 동일한 인자를 주었을 때 항상 같은 값을 리턴하는 함수
- 좀 더 자세히 적자면... 입출력 코드를 가지고 있지 않음/ 매개변수 변경이 일어나지 않음/ 결과를 즉시 반환함/ 비동기적 동작이 없음/ 전역변수나 정적변수를 사용하지 않음/ 예외를 발생시키지 않음/ 콜백 함수로 구현되었거나 콜백 함수를 사용하는 코드가 없음
1급 시민 (First-class citizen)
- 프로그래밍의 변수에서 1급 시민의 조건
1. 변수에 담을 수 있다.
2. 함수(혹은 메소드)의 인자(매개변수, Parameter)로 전달할 수 있다.
3. 함수(혹은 메소드)의 반환값(return)으로 전달할 수 있다.
- 대부분의 프로그래밍 언어에서 숫자형/문자형 등은 1급 시민의 조건을 충족한다.
1급 함수 (First-class function)
- Kotlin의 함수는 1급 함수, 즉 1급 객체이다.
- 이 말은... Kotlin에서는 함수를 변수에 할당이 가능하고, 인자 또는 반환값으로 사용할 수 있다는 것이다.
- Kotlin은 함수형 프로그래밍을 지원한다. ( 명령형 프로그래밍으로, 또는 둘을 섞어서 프로그래밍할 수도 있다! )
처음에는 1급 시민 개념이 왜 자꾸 나오는지 몰랐는데, 함수형 프로그래밍을 이해하려면 필요한 개념인걸 오늘 세미나를 통해 알았다... 으아악..................
'Study > Kotlin&Android' 카테고리의 다른 글
[Android] Foreground Service App 만들기 (0) | 2023.05.08 |
---|---|
[Android] 어플리케이션 간 파일 공유하기 (broadcast로) (0) | 2022.11.22 |
[Android] Retrofit 서비스 인터페이스 정의 (애너테이션) (0) | 2021.12.12 |
[Android] 서비스 (0) | 2021.11.21 |
[Android] 뷰 이벤트 처리 방법 네 가지( Listener 등록 ) (0) | 2021.11.16 |