Terminei o curso de programação funcional no Cousera, estou fazendo um Rubik solver em Scala para consolidar ->
Está no comecinho ainda, o link é para quem quiser acompanhar o dev em real-time.
O curso em si é bacana, mas para mim foi meio fácil porque eu já sabia Haskell. Mas confirmou a minha suspeita de que a unidade de pensamento não é a função. Em programação estruturada, você pensa em funções e as implementa usando variáveis. Em programação funcional, você pensa em tipos e os implementa usando funções. A função é a ferramenta, não o objetivo.
Sobre o scala em si eu achei a sintaxe meio zoada, meu resumo é que Scala/Haskell = Java/Python. Haskell é conciso e usa indentação sintática, Scala é verbose e ignora indentação. Mas tem uma feature do Scala que eu achei muito bacana: a anotação @TailRec que quebra seu código em tempo de compilação se a função não for tail-recursive. Isso ajuda um monte para escrever código recursivo eficiente.
Nenhum comentário:
Postar um comentário