이 질문 (및 답변)에 정말로 중요한 한 가지는 다음과 같습니다. 지옥은 기능 프로그래밍이란 무엇이며, 가장 중요한 속성은 무엇입니까? 나는 그것에 대한 나의 견해를 주려고 노력할 것이다.
함수형 프로그래밍은 화이트 보드에 수학을 쓰는 것과 비슷합니다. 화이트 보드에 방정식을 쓸 때 실행 순서를 생각하지 않습니다. (일반적으로) 돌연변이가 없습니다. 당신은 다음날 다시 와서 그것을 보지 않고 계산을 다시 할 때 다른 결과를 얻습니다 (또는 신선한 커피를 마셨다면 :). 기본적으로 칠판에있는 것이 있고, 글을 적을 때 이미 답이 있었지만 아직 그 내용을 깨닫지 못했습니다.
함수형 프로그래밍은 이와 매우 비슷합니다. 당신은 사물을 바꾸지 않고 단지 방정식을 평가하고 (이 경우 "프로그램") 답이 무엇인지 알아냅니다. 프로그램은 여전히 수정되지 않은 상태입니다. 데이터와 동일합니다.
다음은 함수형 프로그래밍의 가장 중요한 기능으로 다음과 같이 평가합니다. a) 참조 투명성-다른 시간과 장소에서 동일한 문장을 평가하지만 동일한 변수 값을 사용하더라도 여전히 동일한 의미를 갖습니다. b) 부작용 없음-화이트 보드를 얼마나 오래 응시하더라도 다른 사람이 다른 화이트 보드를보고있는 방정식은 우연히 변경되지 않습니다. c) 함수도 값이다. 다른 변수와 함께 전달되거나 다른 변수에 적용될 수 있습니다. d) 함수 구성, h = g · f를 수행 할 수 있으므로 g (f (..))를 호출하는 것과 동일한 새 함수 h (..)를 정의 할 수 있습니다.
이 목록은 우선 순위에 따라 참조 투명성이 가장 중요하며 부작용이 없습니다.
이제 파이썬을 통해 언어와 라이브러리가 이러한 측면을 얼마나 잘 지원하고 보장하는지 확인하면 자신의 질문에 대한 답을 얻을 수 있습니다.