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

Antonio2011a
fonte
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.

Engenheiro Mundial
fonte
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.

JohnL4
fonte
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.

btilly
fonte
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.

Justin Shield
fonte
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/ )

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

Programação em Haskell

Você pode não optar por comprá-lo, mas a página inicial do livro (veja acima) está vinculada a 13 vídeos do canal 9 na programação Haskell.

user16764
fonte