파이썬 순수함수, 비순수함수1 개념[ | ]Pure Function, 순수 함수Impure Function, 비순수 함수
2 순수 함수[ | ]
def plus(a, b): return a + b print(plus(1, 2)) Show 3 비순수 함수[ | ]names = ['john', 'jmnote'] def append_name(name_list, newName): names.append(newName) append_name(names, 'ksk') print(names)→ append_name 함수는 입력값 ksk값을 추가함으로 기존 names 리스트의 상태를 변화시킴
파이썬 순수함수, 비순수함수1 개념[ | ]Pure Function, 순수 함수Impure Function, 비순수 함수
2 순수 함수[ | ]
def plus(a, b): return a + b print(plus(1, 2))→ 1, 2 입력 값 만을 가지고 연산함 3 비순수 함수[ | ]names = ['john', 'jmnote'] def append_name(name_list, newName): names.append(newName) append_name(names, 'ksk') print(names)→ append_name 함수는 입력값 ksk값을 추가함으로 기존 names 리스트의 상태를 변화시킴 1. 개념순수 함수들을 조합하여 전체 프로그램을 구현하는 방식으로 말 그대로 프로그램 내에서 데이터 연산 및 처리를 수학적인 개념에서 이해하여 다루려는 개념 2. 콘셉트
3. 함수형 프로그래밍의 주요 개념1) 일급 함수일급 함수는 아래와 같은 조건을 만족하는 함수로 대표적으로 kotlin, java script 함수들이 일급 함수에 속합니다. 파이썬 역시 모두 객체로 이루어져 있기 때문에 함수 역시 객체이고 따라서 파이썬의 함수 또한 일급 함수입니다.
A. 클로저 개념적으로는 외부 함수에 접근할 수 있는 내부 함수 또는 이러한 원리를 말합니다. 사용에 따라 내부 함수 범위에서는 외부 함수 범위의 변수에 접근이 가능하지만 그 반대는 실현이 불가능하다는 개념입니다. 따라서 외부 함수는 외부 함수의 지역변수를 사용하는 내부 함수가 소멸될 때까지 소멸되지 않습니다. 이를 구현하기 위해 일급 함수의 개념이 필요합니다.
주석 처리한 부분을 살리고 average2를 제거해도 동일한 기능을 수행합니다.
매직 메서드를 통해 어떤 값이 저장되고, 자유 변수는 무엇인지 등 다양한 정보를 확인 가능합니다. c.f ) Python의 스코프 규칙(scope rule) 모든 객체(변수, 함수 등 모든 것)의 우선순위는 Local -> (enclosed) -> Global -> Built in 의 순을 갖습니다. 2) 고차 함수람다 계산법에서 만들어진 개념으로 일급 함수의 부분집합으로 볼 수 있습니다.
3) 순수 함수함수형 프로그래밍에 꼭 필요한 개념입니다.
|