내가 (필자는 문서를 미끄러 져 한) 피닉스 어떤 경험이없는,하지만 난 C++ 일부를 수행 OCaml의, 그리고 하스켈 그래서 거기에 도움을 줄 수 있습니다.
첫 번째로 함수형 프로그래밍을 배우면 C++로 쉽게 변환되지 않는다는 것을 알게 될 것입니다. 실제 함수형 언어보다 더 복잡하고 더 장황하게됩니다. 그럼에도 불구하고, 그들은 당신에게 더 많은 도구와 다른 사고 방식을 제공 할 것이므로 기술을 배울 가치가 있습니다.
haskell과 ocaml이 (가) 비슷합니까?
그들은 모두 ML의 영향을 받으므로 매우 비슷합니다 (글쎄요, 의견, 의견보기). OCaml은 명령형 및 객체 지향 (OO) 기능 때문에 C++에 가깝습니다. 그러나 Haskell이 더 기능적이고 마음을 바꿔 쓰며 더 많은 리소스를 보유하고 있으므로 Haskell을 배우는 것이 좋습니다. ML- 같은 언어에 대한 흥미로운 점은 템플릿 메타 프로그래밍에 아주 잘 번역된다는 것입니다.
대체로 Boost.phoenix에 적용 할 수있는 좋은 기능 프로그래밍 서적이 있습니까?
Phoenix의 워드 프로세서는 표준 용어를 사용하는 것 같습니다. 혼란 스러울 수있는 한 가지는 'functor'라는 단어를 사용하는 것입니다. C++에서는 함수 객체를 의미하지만 Haskell과 같은 언어에서는 다른 것입니다.여기
은 당신이보고해야 할 몇 가지 용어입니다 :
- 람다/익명 함수
- 최고 수준의 기능
- 기능 응용 프로그램
- 부분 응용 프로그램 및 무두질
- 구성
- 엄격한/엄격하지 않은/게으른 평가
- 개 재귀
- 폐쇄
여기가 함수형 프로그래밍에 대한 소개가 있습니다 나는 독서를 권장 두 가지 무료 책입니다
http://learnyouahaskell.com/chapters (하스켈)
http://mitpress.mit.edu/sicp/full-text/book/book.html (계획)
하스켈은 SML 파생물이 아니며 둘 다 거의 같은시기에 등장했으며 상당히 달랐습니다. –
하스켈의 "혈통"은 터너 계열의 언어 인 SASL, KRC, Miranda에 뿌리를두고 있습니다. 대략 ML (SML 이전)은 SASL과 KRC와 현대적이며, Miranda는 SML과 동시대입니다. 하스켈은 조금 후에 나타났습니다. –
@stephentetley 답변을 업데이트했습니다. – Pubby