함수형 프로그래밍을 액세스 가능한 방식으로 설명하는 책을 찾고 있습니다. 또한 나는 너무 둔하지 않고 난해한 언어를 사용하지 않는 것을 선호합니다.
이상적으로는 함수형 프로그래밍이 명령형 접근 방식보다 더 우아하거나 간단한 솔루션으로 이어지는 상황을 보여주는 예제를 사용합니다.
나는 적당한 양의 프로그래밍 경험이 있지만 기능적 프로그래밍에 대한 지식은 없다. 어떤 제안에 감사드립니다
함수형 프로그래밍을 액세스 가능한 방식으로 설명하는 책을 찾고 있습니다. 또한 나는 너무 둔하지 않고 난해한 언어를 사용하지 않는 것을 선호합니다.
이상적으로는 함수형 프로그래밍이 명령형 접근 방식보다 더 우아하거나 간단한 솔루션으로 이어지는 상황을 보여주는 예제를 사용합니다.
나는 적당한 양의 프로그래밍 경험이 있지만 기능적 프로그래밍에 대한 지식은 없다. 어떤 제안에 감사드립니다
답변:
나는 " The Little Schemer "(그리고 아마도 " The Reasoned Schemer "로 시작)로 시작합니다.
Scheme이 너무 난해하다고 생각하거나 Javascript를 좋아하는 경우 Douglas Crockford는 많은 연습을 Javascript로 변환했습니다. http://javascript.crockford.com/little.html
C #을 즐기 신다면 Tomas Petricek의 " Real-World Functional Programming "을 시작하는 것이 좋습니다. 또한 F #에 대한 훌륭한 소개 역할을합니다.
정적으로 입력 된 언어와 [브라켓]을 좋아하는 경우 :
Haskell은 순전히 프로그래밍 패러다임에 무겁지만, "아주 좋은 것을 위해 Haskell을 배우십시오!" 의 형태로 본 언어에 대한 최고의 소개 중 하나를 가지고 있습니다 . 웹 사이트가 무료이기 때문에 책 양식은 선택 사항이지만 이것은 내가 전혀 느끼지 못한 한 명의 저자입니다. 실제 세계 Haskell 은 좋지만 실제로 [Learn..Good]의 후속 조치로 사용하는 것이 좋습니다. RWH는 옵션으로 종이로 된 장점도 있습니다.
Haskell에서 더 널리 사용되는 F # 또는 OCaml 과 같은 다른 ML 변형으로 쉽게 전환 할 수 있습니다 . 블리딩 엣지 ATS의 경우 .
원하는 경우 (및 Dynamic_Typing 괄호) :
Scheme은 Common Lisp보다 작고 순수하지만 두 가지 주요 Lisp 방언 중 기능적으로 지향적이지만 산업에서는 덜 널리 사용됩니다. 나는 개인적 으로 컴퓨터 프로그램의 구조와 해석을 좋아 하지만 꽤 이론적으로 무거운 책입니다. 조금 삼키기가 어려우면 더 나은 프로그래머가 될 것입니다.
Common Lisp를 선호한다면 Practical Common Lisp 또는 Land of Lisp 가 좋은 투자처럼 보이지만, 첫 번째는 무료이며 두 번째는 상당히 저렴하고 더 중요합니다 (일부) 게임 중심입니다. Scheme보다 덜 강력하지만 덜 강력합니다.
원하는 경우 클로저 로 확장 할 수 있습니다 . JVM을위한 Lisp이므로 배포가 쉬우 며 "학업 적"혐의로부터 더 효과적으로 방어 할 수 있습니다. Clojure는 .NET에 배포하고 Javascript로도 넘어갈 수 있습니다. 네이티브 .NET의 경우 IronScheme을 사용해보십시오 .
Haskell 에서 48 시간 내에 Write Yourself a Scheme을 사용 하여 차이점을 한 번에 배울 수 있습니다 .
내가 가장 좋아하는 소스는 Haskell에 대한 젠틀 소개 입니다. 나는 당신에게 Haskell 과 O'Reilly Real-World Haskell 과 Simon Thompson의 함수형 프로그래밍 기술 배우기의 일부를 읽었 지만, 솔직히 소개와 함께 더 잘하고 있습니다. Haskell의 K & R과 비슷합니다. 언어 작성자가 만든 얇은 문서입니다. 말도 안되고, 선심도 아니고, 당신의 박해로 당신을 압도하려고하지도 않습니다.
http://hop.perl.plover.com/ 에는 무료로 다운로드 할 수있는 책이 포함되어 있습니다. Perl에서 많은 기능 기술을 사용하는 방법을 설명합니다.
그것이 말하는 대부분은 JavaScript, Ruby 또는 Python으로 매우 쉽게 번역 될 수 있습니다.
현재 기능 프로그래밍을 배우고 있습니다. 그러나 나는 Haskell을 사용하여 배우고 있습니다.
다음은 온라인 서적입니다 (하드 커버 iirc에서 구입할 수 있습니다).
Haskell은 에스테르 계가 아니며 주류가되고 있습니다 (LISP 나 Erlang만큼 주류가 아님). 그러나 이것은 순수한 기능적 언어이며 기능적 프로그래밍 패러다임을 배워야합니다. 반 기능적 반 기능 접근 방식과는 달리 순수한 기능이 아닌 언어를 사용하게됩니다.
사람들은 haskell을 사용하여 WebServer, Bittorrent Client 및 몇 가지 실제 응용 프로그램을 개발했습니다. 그러나 개인적으로 개념을 배우고 지금까지 환상적으로 작동하는 C # & F #에 적용하고 있습니다.
즐겨.
"컴퓨터 프로그램의 구조와 해석"에 대해 여러 차례 좋은 소식을 들었습니다. 이 책은 실제 책이므로 Paper에서도 얻을 수 있습니다 . http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871을 참조 하십시오 .
http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) 에서 무료로 사용할 수 있으며 강의 비디오 ( http : //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )