Eu tenho tentado aprender programação funcional e a maioria dos tutoriais que encontrei usam a matemática como exemplos para construções mais complicadas (mesmo as mais simples em alguns casos). Por que é isso? Eu imaginaria que algo mais fácil poderia ser usado. Está dificultando o aprendizado.
Informações básicas: Escrevo software há 12 anos. Entendo alguns dos conceitos, como fechamentos, funções como cidadãos de primeira classe e genéricos. Talvez esteja tendo problemas com funções de ordem superior em algum nível avançado, mas gostaria de acreditar que tenho uma compreensão básica. Mônadas estão me mordendo na bunda, e neste momento eu não superei isso (tenho certeza que acabarei, porque sou persistente).
functional-programming
math
Charles Lambert
fonte
fonte
Respostas:
Eles usam matemática porque a Programação Funcional é muito boa na modelagem de construções matemáticas e está muito ligada a conceitos matemáticos, particularmente o Lambda Calculus. Além disso, como a E / S é normalmente um assunto bastante espinhoso e avançado em muitas linguagens da matemática do paradigma funcional por meio dos REPLs das várias linguagens, torna-se uma boa maneira de ensinar a língua primeiro.
Como a Programação Funcional trata as Funções como construções de primeira classe na linguagem de programação, a geração de funções se torna muito importante. Portanto, a matemática mais alta se torna bastante importante, particularmente a teoria dos grafos.
As línguas imperativas são igualmente matemáticas, mas são todas aritméticas na base, pois estão mais próximas da máquina, que só podem ser adicionadas de qualquer maneira. As linguagens funcionais com sua abstração mais alta tendem mais à matemática. O uso geral na academia também não ajuda, à medida que se acostuma e, portanto, é ensinado por pessoas que conhecem muita matemática e estão ensinando pessoas que esperam aprender muita matemática. Portanto, é possível "emburrecer", por assim dizer, mas é improvável esses fatores.
http://learnyouahaskell.com/ - É provavelmente uma das introduções mais gentis à Programação Funcional, verifiquei duas vezes e não há nada além da álgebra básica e da teoria dos grafos.
fonte
Existem inúmeras razões, e todas elas estão relacionadas:
Além disso, a FP não é mais matemática do que outros paradigmas, mas os conceitos-chave (funcionam como cidadãos de primeira classe, funções de ordem superior, fechamentos e pureza) exigem uma certa mentalidade. Em algum momento, sua mente deve "clicar"; se você entender essas quatro idéias principais, o resto provavelmente será tão fácil quanto qualquer outro paradigma.
fonte
É porque, fundamentalmente, a programação de computadores é matemática. As linguagens funcionais foram projetadas com isso em mente e é por isso que muitos dos tutoriais estão focados na matemática.
Só é difícil aprender se você não está acostumado a pensar em programação de computadores como tendo uma base matemática.
fonte
Eu acho que "The Little Schemer" é uma introdução incrível à programação funcional e não é nada matemática. Ele não entra nas Mônadas, portanto pode ser muito básico para o seu gosto, mas faz uma derivação do combinador Y no final.
Recentemente, eu passei por isso depois de não fazer nenhuma programação funcional desde a faculdade, há 12 anos, e foi uma ótima atualização, eu definitivamente me sinto pronto para lidar com coisas mais avançadas depois de trabalhar com a maioria dos problemas do livro usando o Racket.
fonte