수색…


소개

기능적 프로그래밍은 문제를 일련의 기능으로 분해합니다. 이상적으로 함수는 입력을 받아 출력을 생성하고 주어진 입력에 대해 생성 된 출력에 영향을주는 내부 상태를 갖지 않습니다. 다음은 람다, 맵, 축소와 같은 많은 언어에 공통된 기능 기술입니다.

람다 함수

lambda로 정의 된 익명의 인라인 함수. 람다의 매개 변수는 콜론의 왼쪽에 정의됩니다. 함수 본문은 콜론의 오른쪽에 정의됩니다. 함수 본문을 실행 한 결과가 (암시 적으로) 반환됩니다.

s=lambda x:x*x
s(2)    =>4

맵 기능

Map은 함수와 항목 모음을 사용합니다. 새 빈 콜렉션을 만들고 원래 콜렉션의 각 항목에 대해 함수를 실행하고 각 리턴 값을 새 콜렉션에 삽입합니다. 새 컬렉션을 반환합니다.

이것은 이름 목록을 취하고 그 이름들의 길이 목록을 반환하는 단순한 맵입니다 :

name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths)    =>[4, 4, 3]

기능 축소

Reduce는 함수와 항목 모음을 사용합니다. 항목을 결합하여 만든 값을 반환합니다.

이것은 간단한 감소입니다. 컬렉션의 모든 항목의 합계를 반환합니다.

total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total)    =>10

필터 기능

Filter는 함수와 컬렉션을 취합니다. 함수가 반환 한 모든 항목의 컬렉션을 True로 반환합니다.

arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)]    # outputs[5,6]


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow