Livro acessível sobre programação funcional [fechado]


17

Estou procurando um livro que explique a programação funcional de maneira acessível. Também prefiro um que não seja muito monótono e não use uma linguagem esotérica.

Idealmente, usará exemplos que demonstram situações em que a programação funcional leva a soluções mais elegantes ou mais simples que as abordagens imperativas.

Tenho uma quantidade razoável de experiência em programação, mas nenhum conhecimento de programação funcional. Obrigado por todas as sugestões


3
Estou curioso para saber se havia um idioma em particular quando disse que não deseja usar um "idioma esotérico".
MatrixFrog

@MatrixFrog: tenho 99% de certeza de que, por "linguagem esotérica", ele quis dizer Scheme. Ele provavelmente sabia que o SICP seria o primeiro livro recomendado.
user16764

@ user16764 Mas "acessível"? Isso seria Como criar programas (ou a 2ª ed. ), Com base na lógica dada pelo (s) autor (es) em A estrutura e a interpretação do currículo da ciência da computação .
Mark C

Respostas:



10

Se você gosta de idiomas com digitação estática e [colchetes]:

Haskell, apesar de um pouco pesado na pureza do paradigma de programação, tem uma das melhores introduções a uma linguagem que eu já vi na forma de "Aprenda um Haskell para o bem!". O formulário do livro é opcional, pois o site é gratuito, mas este é um autor que eu não me senti nada desapontado. O mundo real Haskell é bom, mas realmente é melhor interpretado como um acompanhamento de [Learn..Bom]. O RWH também é gratuito com qualidade de papel opcional.

No Haskell, você pode fazer a transição facilmente para outras variantes de ML, como F # ou OCaml, sendo as mais amplamente usadas. Para a borda de sangramento ATS .

Se você gosta (e parênteses de Dynamic_Typing):

O esquema é o mais funcionalmente orientado dos dois principais dialetos do Lisp, menor e mais puro que o Common Lisp, mas menos amplamente utilizado na indústria. Pessoalmente, gosto de A estrutura e a interpretação de programas de computador, mas é um livro bastante teórico, que, embora um pouco difícil de engolir, fará de você um programador melhor.

Se você prefere o Common Lisp, o Practical Common Lisp ou o Land of Lisp parecem bons investimentos, o primeiro é gratuito on-line e o segundo é bastante barato e mais importante (para alguns) focado no jogo. É mais poderoso, porém menos puro que o Scheme.

Nesses, você pode expandir para o Clojure, se quiser. É o Lisp para a JVM, por isso é mais fácil de implantar e mais capaz de se defender de acusações de ser "acadêmico". O Clojure pode implantar no .NET e passar para o Javascript também. Para .NET nativo, tente o IronScheme .

Você também pode dividir a diferença e aprender os dois tipos de uma vez com Write Yourself a Scheme in 48 Hours in Haskell.


Se você for ao SICP, também há muitas palestras em vídeo sobre o livro, mais famosas: groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures Paul Graham é um bom escritor e tem um livro grátis sobre por que Lisp é os joelhos da abelha paulgraham.com/onlisptext.html
simoraman

1
Estou lendo a versão online gratuita do Mundo Real Haskell, e a capacidade de ler os comentários enquanto lê o texto é extremamente útil. Portanto, mesmo se você receber a versão em papel, também poderá ler a versão on-line. Algumas partes são bem menos confusas com os comentários.
MatrixFrog

4

Minha fonte favorita é a Gentle Introduction to Haskell . Li parte de Learn you a Haskell e o O'Reilly Real-World Haskell e o Craft of Functional Programming de Simon Thompson , mas honestamente estou me saindo melhor com a introdução suave. É como o K&R de Haskell: um documento fino produzido pelos criadores da linguagem. Não é prolixo, nem condescendente, mas também não tenta sobrecarregá-lo com a erudição deles.


1
A introdução suave é muito direta e sem sentido, como um soco firme no estômago. É gentil no sentido de que faz violência sem malícia, procurando nem mimar nem dominar; antes, na esperança de que o leitor possa descobrir a força interior necessária para revidar.
CA McCann

1
Hmm, sensei, não tenho certeza se usaria essas imagens, mas tanto faz. Não é violento, nem a força interior é um problema, mas eu concordo com o resto. "Gentil" é um pouco humorístico aqui. Como "proposta modesta".
JohnL4

1
Sim, eu estava tendo um pouco de ... liberdade criativa lá. ;] É preciso um pouco de força mental, porém, para conseguir algo tão contundente em comparação com outros materiais introdutórios dos dias de hoje (para qualquer idioma, não apenas Haskell). A comparação com a K&R me faz pensar que você está acostumado a esse tipo de estilo. Eu geralmente assumi que "gentil" se entende em contraste com o aprendizado do Relatório Haskell e uma pilha de trabalhos de pesquisa.
CA McCann

1

http://hop.perl.plover.com/ inclui um livro que você pode baixar gratuitamente. Explica como usar muitas técnicas funcionais no Perl.

Muito do que diz pode ser facilmente traduzido para JavaScript, Ruby ou Python.


1

Atualmente, estou aprendendo a programação funcional. No entanto, eu estou aprendendo usando Haskell.

Aqui estão alguns livros on-line (você também pode comprá-los em capa dura iirc)

Haskell não é esteroico e está se tornando mais popular (possivelmente não tão popular quanto LISP ou Erlang). No entanto, é uma linguagem funcional pura e forçará você a aprender o paradigma de programação funcional. Ao contrário de uma abordagem semi-imperativa, meio imperativa, você usará uma linguagem não puramente funcional.

As pessoas desenvolveram servidores Web, clientes Bittorrent e alguns aplicativos do mundo real usando haskell. No entanto, estou pessoalmente usando-o para aprender os conceitos e, em seguida, aplicando isso ao C # & F #, que está funcionando de maneira fantástica até agora.

Desfrutar.


1

Ouvi coisas boas sobre "Estrutura e interpretação de programas de computador" várias vezes. É um livro real, portanto, você também pode encontrá-lo no Paper, consulte http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871 .

Está disponível gratuitamente aqui http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) e ainda existem vídeos das palestras ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )


SICP foi bom, mas não acessível na minha experiência.
willem

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.