1

나는 내 프로젝트에 Boost.phoenix를 통합하기 위해 함수형 프로그래밍을 배우려하고있다.부스트 피닉스 (Boost Phoenix)에 가장 쉽게 접근 할 수있는 기능 언어 접근법은 무엇입니까?

어떤 언어가 가장 유사하기 때문에 함수 프로그래밍 개념을 해당 상황에서 쉽게 적용 할 수있는 방법으로 보여줄 책을 찾을 수 있습니다 ... haskell과 ocaml은 비슷한가요?

일반적으로 Boost.phoenix에 적용 할 수있는 좋은 기능 프로그래밍 서적이 있습니까?

답변

2

내가 (필자는 문서를 미끄러 져 한) 피닉스 어떤 경험이없는,하지만 난 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 (계획)

+2

하스켈은 SML 파생물이 아니며 둘 다 거의 같은시기에 등장했으며 상당히 달랐습니다. –

+1

하스켈의 "혈통"은 터너 계열의 언어 인 SASL, KRC, Miranda에 뿌리를두고 있습니다. 대략 ML (SML 이전)은 SASL과 KRC와 현대적이며, Miranda는 SML과 동시대입니다. 하스켈은 조금 후에 나타났습니다. –

+0

@stephentetley 답변을 업데이트했습니다. – Pubby

4

Phoenix는 C++에서 함수 프로그래밍 (FP)을 가능하게합니다. 결과적으로, 가장 시너지 효과가있는 언어는 C++이 될 것입니다.

독자적인 용어로 기능적 프로그래밍을 배우려면 Haskell 및 Scheme과 같은 언어가 더 나은 선택 일 수 있습니다.

http://www.boost.org/doc/libs/1_51_0/libs/phoenix/doc/html/index.html

+0

나는 C++을 사용하려고하지만 기능적 관점에서 문제에 접근하는 좋은 책을 찾고 있는데 -이 관용구의 패턴 - 책의 코드가 다른 경우에도 쉽게 Phoenix에 다시 적용될 수 있습니다. 하지만 개념적으로 호환되는 언어. –

+3

Phoenix가 진정으로 기능적이라면 (필자가 생각하기에 편한 것입니다.) Phoenix가 구현 한 원칙은 보편적이며 모든 적절한 함수 언어와 책으로 충분합니다. Phoenix의 초점은 C++에 함수형 프로그래밍을 가져 오는 것입니다. 내 경험상, 이미 성숙한 언어와 같은 주요 기능을 사용하는 것은 이미 C++ 프로그래밍에 능숙하지 않은 경우 학습 과정을 복잡하게하는 몇 가지 복잡함을 만들어 낼 것입니다. –

+0

함수 프로그래밍의 디자인 패턴과 관용구 및 관련 소프트웨어 아키텍처를 설명하는 책을 찾고 있습니다. 나는 그런 책을 전혀 모른다. 그러한 책 하나를 쓰는 것은 현재 나의 프로젝트입니다. :) – winitzki

2

피닉스에 대해 많이 알지는 못하지만 오카사키의 Purely Functional Data Structures는 기능에 데이터를 쓰는 방법을 다소간 일반화 할 수 있다고 생각합니다. 난 스타일.