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 | 31 |
Tags
- 파이썬 형변환
- AIFFEL 일기
- 모듈 패키지 라이브러리
- 파이썬 문법
- Aiffel
- 파이썬 주석 변수
- 아이펠 회고
- 리눅스
- AIFFEL 회고
- python 문법
- 파이썬 여러줄 문자열 변수
- 마크다운 inline 수식
- 런타임
- Markdown
- 마크다운
- 파이썬 긴 문자열 변수
- 아이펠
- 아이펠일기
- Python
- 아이펠 일기
- 파이썬 여러줄 주석
- 컴파일타임
- AIFFEL일기
- 마크다운 인라인 수식
- 윈도우 커맨드창
- compile time
- 파이썬 진수변환
- PYTHON 주석 변수
- 파이썬
- Linux
Archives
- Today
- Total
튜토리얼에도 고난과 역경이 있다.
함수형 프로그래밍이란 본문
728x90
함수형 프로그래밍이란?
- 함수형 프로그래밍의 특징은 문제를 함수로 분해한다는 것이다.
- 각각의 함수는 입력을 받아 출력을 만들어 내기만 한다.
- 즉, 주어진 입력값이 함수를 통과 하여 연산을 한 후, 생성된 결과 값은 해당 함수외의 다른 변수나 함수에 의해 변하지 않는다. == 다른 변수나 함수의 영향을 받지 않는다.
- 효율성, 버그 없는 코드, 병렬 프로그래밍과 같은 장점을 갖는다.
함수형 프로그래밍의 특징
순수성
함수형 프로그램에서 함수는 입력으로 부터 출력을 만들어 내며, 내부의 상태를 수정하거나 함수 내부의 보이지 않는 특정 값을 이용하여 출력을 만들어 내지 않는다.
다른 변경사항들이 만드는 부작용 있는 함수를 사용하지 않으며, 이러한 부작용이 없도록 만든 함수를 순수함수라고 한다.
코드를 통한 예시
순수성이 없는 코드
y = 30 def impure_add(x): return x+y print(impure_add(100))
문제점 1. y=30 이라는 입력을 받지 않고도 결정된 값이 있음
문제점 2. 함수 안에 있는 값 뿐만 아니라 함수 밖에있는 y값을 사용함.
순수성이 지켜진 코드
def pure_add(x,y): return x+y print(pure_add(100,30))
모듈성
모든 입력으로만 출력을 내는 형식으로 프로그래밍을 하면, 문제를 작은 조각으로 분해하도록 강제하기 때문에 코딩하기는 더 쉬워진다.
작은 함수 하나 하나는, 가독성도 좋고 오류 확인하기도 쉬워지며 프로그램의 모듈성이 높아진다.
디버깅과 테스트 용이성
함수형 프로그래밍의 모듈성 덕분에, 이 방법으로 개발된 프로그램은 각각의 함수가 작고 명확하여 디버깅이 쉽다.
프로그램이 에러나 오류를 뱉는 경우, 각 함수는 데이터가 올바르게 출력되고 있는지 확인하는 breakpoint들이 된다. 그렇기 때문에 각 함수에 입출력을 확인하며 값이 올바르게 나오고 있는지 확인할 수 있어 디버깅이 쉽다.
각 함수는 단위 테스트 unit test 대상이므로 테스팅도 쉽다.
출처
- AIFFEL LMS
반응형
'나의 공부 > 기타' 카테고리의 다른 글
런타임과 컴파일타임 (0) | 2022.01.03 |
---|---|
마크다운 ) 수식 작성하는 법 (0) | 2022.01.03 |
마크다운 ) 토글 만들기 - 접기, 펼치기 Expander control (0) | 2022.01.03 |
프로그래밍 기법) 메모이제이션 memoization (0) | 2022.01.03 |
컴파일 타임과 런타임 (0) | 2022.01.02 |