awesome-functional-studies
                                
                                
                                
                                    awesome-functional-studies copied to clipboard
                            
                            
                            
                        A curated list of functional programming resources to study the fp paradigm
Awesome Funcional Programming Studies
Estudos de programação funcional maneiros.
Contributing.md
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 :star: :star: :star: :star:
- Artigo do Gagallium/Inria (em OCaml) sobre estruturas de dados, travessia destas e inversão de controle.
 
 - Implementing, and Understanding Type Classes :star: :star: :star: :star: :star:
- 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