Awesome Funcional Programming Studies
Estudos de programação funcional maneiros.
Summary
- Functional Paradigm
- Lambda Calculus - Combinators
- Theory
- Javascript
- Haskell
- Scala
- SML
- OCaml
- Elixir
- Ruby
- Elm
- Scheme
- Common Lisp
- Clojure
- Idris
- ReasonML
Paradigm
- Functional programming study plan
- awesome functional programming
- functional-programming-javascript
- Hidden complexities of tail-call/tail-recursion optimization
- Erik Meijer: Functional Programming
- Philip Wadler and Erik Meijer: On Programming Language Theory and Practice
- How to Design Programs
- Introduction to Functional Programming (Prentice Hall International Series in Computing Science)
- A Proof Assistant for Higher-Order Logic
- The Implementation of Functional Programming Languages
- C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals
Courses
- Programming Languages *****
- Curso em SML, Ruby e Scheme com uma abordagem a programação funcional muito interessante.
- fp-course
- SICP
- Livro com teoria e exercicios em Scheme que era usado para ensinar introdução a computação do MIT.
- MIT 6.001 Structure and Interpretation, 1986
- Playlist com as aulas da matéria Introdução à Computação, do MIT, baseada no SICP.
- How to Code - Simple Data *****
- Curso em Inglês baseado no livro How to Design Programs citado na seção "Paradigm"
- How to Code - Complex Data
- Continuação do curso acima.
Papers
Books
-
Programação Funcional Para Desenvolvedores Java
- Ótimo livro pra quem tá acostumado com POO e quer começar a entender o paradigma funcional. Não precisa saber Java.
-
Algoritmos Funcionais *****
- Ótimo livro pra quem está querendo ver lógica de programação funcional, utilizando Haskell e Hope. Não precisa saber essas linguagens.
Videos
- Coding Tech - Functional Programming
- Playlist com diferentes vídeos sobre programação funcional, incluindo Type Systems, Reactive Programming, Introduções com JS, etc
Lambda Calculus-Combinators
- A Taste of the λ Calculus
- A Graphical Notation for the Lambda Calculus with Animated Reduction
- Combinator Birds
- Summary of all combinators named by the book
- The SKI Combinator Calculus - a universal formal system
- BCKW Combinators (Wikipedia)
- Ski Combinators (Wikipedia)
- Mockingbirds and Simple Recursive Combinators in Ruby
Talks
Books
- Lambda-Calculus and Combinators: An Introduction
- To Mock a Mocking Bird
- To Mock a Mockingbird and Other Logic Puzzles
- An Introduction to Functional Programming Through Lambda Calculus
Games
Theory
Livros
- Category Theory for Programmers by Bartosz Milewski *****
- Livro online da introdução a teoria das cateogorias para programadores do Bartosz Milewski.
- Type Theory & Functional Programming
- The Algebra of Algebraic Data Types
- Functors, Applicatives, And Monads In Pictures
- Types and Programming Languages
- Fundamentos da Programação Lógica e Funcional
Courses
- Video-series - Category theory for programmers by Bartosz Milewski *****
- Video series das aulas do Bartosz Milewski de teoria das cateorias.
- Type Theory Foundations
- Série de vídeos das aulas do Robert Harper (Carnegie Mellon U) sobre type theory.
- Proof Theory Foundations
- Sério de vídeos das aulas do Frank Pfenning (Carnegie Mellon U) sobre proof theory.
Videos
Blog posts / Papers
- Generators, iterators, control and continuations ⭐ ⭐ ⭐ ⭐
- Artigo do Gagallium/Inria (em OCaml) sobre estruturas de dados, travessia destas e inversão de controle.
- Implementing, and Understanding Type Classes ⭐ ⭐ ⭐ ⭐ ⭐
- O artigo explica o mecanismo de type classes de Haskell com paralelos encodings em OCaml
Javascript
- A Gentle Introduction to Functional JavaScript
- Functional programming patterns for the non-mathematician
- functional-programming-javascript
Combinators
Libs
Talks
- David Nolen: Immutability: Putting The Dream Machine To Work
- Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016
- Anjana Vakil: Immutable data structures for functional JS | JSConf EU 2017
- Pure JavaScript - Christian Johansen
- James Coglan: Practical functional programming: pick two | JSConf EU 2014
Blog posts / Papers
- Functional Programming In JavaScript — With Practical Examples
- Thinking in Ramda Series
- Erick Elliot - Composing Software Series
- An Intro to Functional Programming Concepts in JavaScript
- Why Curry Helps
- JavaScript and Type Thinking
- Lazy, composable, and modular JavaScript Monads in JavaScript
- A Monad in Practicality: First-Class Failures
- Master the JavaScript Interview: What is Functional Programming?
Books
- Mostly adequate guide to FP (in javascript)
- Functional Light Programming
- Functional Programming Jargon
- JavaScript Allongé, the "Six" Edition
- Manning Functional Programming in JavaScript
- Functional Javascript O'relly
Courses
Videos
Haskell
- Functional Programming in Haskell
- Category Theory
- Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)
Videos
Courses
- School Of Haskell
- Haskell Course - NPTEL
- Haskell Fast Hard
- FUNCTIONAL PROGRAMMING - University of Edinburgh
- Parallel and Concurrent Haskel
- Haskell for Imperative Programmers
- Grupo de Estudos de Haskell (UFABC)
- Haskell Course - Glasgow University
Books
- Learn You A Haskell For Great Good(Free)
- Real World Haskell
- Write Yourself a Scheme in 48 Hours
- An Introduction to Haskell through Example
- HaskellBook
- Write you a Haskell
- Building a modern functional compiler from first principles.
- What I Wish I Knew When Learning Haskell
Scala
Videos
- Scala Monads: Declutter Your Code With Monadic Design
- Recursion Schemes Categorically
- Apresentação da Oli junto com o Bartosz Milewski, no ScalaUA 2020
- Scaladores
- Canal no youtube do grupo brasileiro sobre Scala
Courses
- Coursera - Functional Programming Principles in Scala
- Serie de cursos do coursera sobre Scala e programação funcional com o criado da linguagem.
- Scala With Cats
- Introdução à biblioteca Cats
- Introduction to Programming with Dependent Types
- Curso mais avançado sobre programação com tipos dependentes.
Books
Comunidade
SML
Courses
- The Little MLer **** Aquele curso do cousera
- Programming Languages *****
- Curso em SML, Ruby e Scheme com uma abordagem a programação funcional muito interessante.
Books
OCaml
OCaml docs
- OCaml Tutorials *****
- Solution of 99 Problems *****
- Learn OCaml *****
Books
Erlang
Books
- Learn you some Erlang for great good!
- Erlang in Anger
- The Beam Book
- The Erlang Runtime System
Elixir
Community
Videos
Talks
Cast
Books
- Elixir In Action
- Erlang in Anger(Free)
- Programming Elixir 1.6
- Programming Phoenix
- Adopting Elixir
- Metaprogramming Elixir
Courses
- Getting started
- Try Elixir - CodeSchool
- Elixir School
- 30 Days Of Elixir
- Discover Elixir Phoenix
- Elixir FP
- Koans Exercices
- Joy Of Elixir
- CheatSheet
- Elixir Style Guide
- Elixir and Erlang packages and resources
- Learn x in y
- Elixir 4noobs
Ruby
Elm
Learn By Example
Stuff
- React Elm Components
- Interop de React com Elm(Colocar componentes ELM no React)
Courses
Community
- Telegram Elm Brasil
- Grupo do tele brasileiro de Elm
- Elm Lang Slack
- Slack de ELM
- Elm Weekly Newsletter
Books
- Beginning Elm
- Livro online de Elm explicando diversos conceitos da linguagem com exemplos de código e diagramas
- Practical Elm
- Livro de Elm do Alex Korban
- Elm in Action
- Livro de Elm do Richard Feldman
Scheme
- Functional Programming by Example - Scheme
- SICP
- Livro com teoria e exercicios em Scheme que era usado para ensinar introdução a computação do MIT.
- SICP Distilled
Common Lisp
Books
- Practical Common Lisp *****
- On Lisp *****
- Lisp In Small Pieces ****
- [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp] (https://github.com/norvig/paip-lisp) ****
Clojure
Books
- Básico: Clojure for the brave and true
- Básico: Programming Clojure 2ed
- Intermediário Básico: The Joy of Clojure
- Intermediário Avançado*: Clojure Applied: From Practice to Practitioner
- Avançado: Mastering Clojure Macros
- The Ultimate Guide to Clojure Concurrency
- Livro do Eric Normand, responsável pelo site LispCast
Comunidade
ClojureBridge SP
@ClojureBridgeSP no Twitter
Courses
- exercism.io
- Clojure Academy
- Hacker Rank - Functional Programming Path
- Clojure Koans
- Clojure Katas
- Wonderland Clojure Katas
- 4Clojure
Sites
- Lambda Calculus: The Y combinator in clojure
- Clojure ToolBox
- Guia de libraries e tools em Clojure
- Clojure Styleguide
- Guia de estilo e organização de codigo em Clojure
- Clojure By Example
- Guia de Clojure por meio de exemplos
- Clojure CheatSheet
- CheatSheet de funções em clojure
- Clojure Design Patterns
ClojureScript
Books
Courses
Idris
Books
- Type-Driven Development with Idris
- Software Foundations
- Gentle Introduction to Dependent Types with Idris
Sites
Talks
- Type-Driven Development in Idris — Edwin Brady
- Idris: Practical Dependent Types with Practical Examples — Brian McKenna
- Type-driven Development of Communicating Systems in Idris — Edwin Brady
Blog posts
Papers
- Programming and Reasoning w/ Side-Effects in Idris
- Programming and Reasoning w/ Algebraic Effects and Dependent Types