Clojure으로 함수 프로그래밍을 배우고 있으며, Clojure의 구문뿐만 아니라 기능적 패러다임에 대한 이론적 이해를 심화시키고 싶습니다.함수 적 프로그래밍의 공리
나는 어떤이다 재귀,지도 등의 각 기능 기술/추론하는에서 작성 가능하다, 서로, 관련된 나머지 단점 먼저 ANS을 줄이는 방법 공리 또는 공식을 찾고, 그리고 있어요 모든 것의 궁극적 인 공리.
예를 들어, 나는 map
만 recur
, first
, rest
및 cons
기능, 그리고 물론 그 자체가 map
에 전달 된 매핑 기능을 사용하여 구현 될 수있다 깨달았다.
는 그 후, 나는 또한 map
도 reduce
를 사용하여 구현하고 다시 recur
, first
및 rest
을 사용하여 구현 될 수있다 줄일 수 깨달았다. 또한 filter
은 reduce
으로 구현 될 수 있습니다.
내가 함수형 프로그래밍의 주위에 내 머리를 정리하기 시작 같은 느낌,하지만 가장 궁극적 인 빌딩 블록은 임의의 기능을 구성 할 수 추상화 또는 키워드의 최소한의 인 즉,있는 볼 여전히 어렵다 . 맵 예제를 사용하면 두 번째 방법은 추상화을 사용하여 같은 목표를 설정합니다. 그렇다면 큰 그림을 보는 데 도움이되는 기능적 패러다임의 궁극적 인 공리는 무엇입니까?
이 경우 나는이 책을 체크 아웃 할 것을 권한다 : https://mitpress.mit.edu/books/little-schemer FP에 대한 놀라운 소개로, 기본적인 번호 만 사용하여 만드는 법을 보여줍니다. 요소의 또한 클래식 [SICP] (https://mitpress.mit.edu/sicp/full-text/book/book.html)은 많은 도움이 될 수 있습니다. 둘 다 lisp을 사용하기 때문에 이해를 클로저에 쉽게 전달할 수있다. – leetwinski
함수 프로그래밍은 크게 Lamda Calculus에 뿌리를두고 핵심 공리는 아래의 amalloy 상태와 같다. –
'map'도'for'로 바꿀 수 있다는 것을 잊지 마십시오 –