The following is a list of material (papers, videos, articles, etc.) on subjects I’m studying.

- Finding primes & proving primality
- Even better Eratosthenes sieve and lucky numbers
- Pearls of Functional Algorithm Design, by Richard Bird (pdf)
- Thorough list of Algorithms and what they’re used for @ StackExchange
- Visualizing Garbage Collection Algorithms

- An introduction to Category Theory for Software Engineers, by Steve Easterbrook (pdf)
- Applicative Programming with Effects
- Basic Definitions
- Category Theory for Computing Science, by Michael Barr and Charles Wells (pdf)
- Comonads in Haskell, by David Overton. Presentation slides
- (video) Comonads, Applicative Functors, Monads and Other Principled Things. By Tony Morris
- (video) Youtube video series: Category Theory for Javascript
- Computational Category Theory (full book)
- (video) Dead-Simple Dependency Injection
- Generic Programming - An Introduction, by Roland Backhouse, Patrik Jansson, Johan Jeuring and Lambert Meertens
- (video) Getting a Quick Fix on Comonads, by Kenneth Foner
- (video) Brian Beckman: Don’t fear the Monad
- (video) John Bender: Faster JavaScript with Category Theory
- Haskell/Functor
- In Functional Programming, what is a functor? @ StackOverflow
- Introduction to Category Theory, course by Graham Hutton
- Understanding Yoneda. By Bartosz Milewski

- David Rydeheard’s Research in Computing
- John Longley’s research page
- Notions of computability at higher types I (pdf)
- “On termination”, mailing list post by Conor McBride
- Realizability theory: difference in power between Lambda calculus and Turing Machines @ StackExchange

- A Note on Distributed Computing (paper)
- (video) Clojure core.async
- Concurrent Programming for Scalable Web Architectures (full book)
- (video) Deterministic Parallel Programming with Haskell - Duncan Coutts
- Differences between Node.js and Erlang
- MIT Theory of Distributed Systems (TDS) group
- (video) LVars: lattice-based data structures for deterministic parallelism (Lindsey Kuper) - RICON West 2013
- Parallel and Concurrent Programming in Haskell (full book)
- Parallelism vs. Concurrency @ Haskell Wiki
- Papers and presentations about transactional memory in Haskell
- Professor Nancy Lynch’s Publications
- (video) Think Distributed, Live from RICON West 2013
- (video) Simon Peyton Jones talks about Software Transactional Memory (STM)
- (video) Lightning Talk: Scala STM
- (video) Why Did We Think Large Scale Distributed Systems Would be Easy?
- Scheduling Deterministic Parallel Programs. By Daniel John Spoonhower (pdf)
- Why Events Are A Bad Idea (for high-concurrency servers)
- Actors:
- (video) Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know…)
- Actors: Foundations for Open System (compendium of papers)
- Concurrent Object-Oriented Programming in Act 1
- Erlang Style Actors Are All About Shared State
- Erlang Style Actors Are All About Locking
- Start With Akka: Let’s Write a Scraper
- Actors are not a good concurrency model
- Actors are overly nondeterministic
- Why I don’t like Akka Actors
- Don’t use Actors for concurrency

- Definitions:

- The Algebra of Algebraic Data Types, Part 1 (video)
- The Essence of the Iterator Pattern
- Incremental multi-level input processing and collection enumeration
- (video) An Introduction to Scalaz-Stream. By Paul Chiusano
- (video) Succinct Data Structures
- What’s new in purely functional data structures since Okasaki? @ StackExchange
- Lenses:
- Records:
- Streams:

- Does Haskell have tail-recursive optimization? @ StackOverflow
- Evaluation Strategy @ Wikipedia
- How Lazy Evaluation Works in Haskell, by Heinrich Apfelmus
- Programming Languages: When did you realize the power of lazy evaluation in terms of performance?
- Laziness:
- Tail Call Elimination:
- (video) Stackless Scala With Free Monads

- The Original ‘Lambda Papers’ by Guy Steele and Gerald Sussman
- “Everything is a function” in Haskell?, By Conal Elliott
- (video) Guerrilla Guide to Pure Functional Programming
- Functional Programming and 3D Games, a thesis by Mun Hon Cheong (pdf) and (source)
- Introduction to Functional Programming, 1ed, by Richard Bird and Philip Wadler (full book) (pdf)
- The Lambda Calculus @ Stanford Encyclopedia of Philosophy
- Prerequisite for Learning Haskell. By Albert Y. C. Lai
- Why Functional Programming Matters, by John Hughes
- Why calculating is better than scheming. By Philip Wadler (pdf)

- The Essence of FRP, talk by Conal Elliott
- Event streams and Signals - what is lost in using just signals? @ StackOverflow
- Functional Reactive Animation, by Conal Elliott and Paul Hudak (pdf)
- Functional Reactive Types, by Alan Jeffrey (pdf)
- Introduction to Functional Reactive Programming (slides)
- (video) Push-pull Functional Reactive Programming, by Conal Elliott
- The Yampa Arcade, by Courtney, Nilsson, and Peterson (pdf)
- Why I switched from component-based game engine architecture to functional reactive programming

- Andreas Abel’s Publications
- Daan Leijen’s publications @ Microsoft Research
- Dissertations on logic, language, and computation.
- Eugenio Moggi’s Publications
- Foundations of Computer Science by Al Aho and Jeff Ullman (full book)
- Journal of Universal Computer Science
- The Little Books
- Manuel M. T. Chakravarty’s publications
- Mark P. Jones’ publications
- Ralf Hinze’s publications
- The manuscripts of Edsger W. Dijkstra
- okmij.org: A general collection of CS/PLT articles
- Research papers @ Haskell.org
- Richard Bird’s publications
- Software Foundations Benjamin C. Pierce and others (full book)

- The Compromiseless Reconciliation of I/O and Purity
- (video) Purely Functional I/O
- Region-based resource management

- (paper) Theorems for free!
- Theorem proving:

- BM2. Logical Equivalence
- De Morgan’s laws
- The Development of Intuitionistic Logic
- Free-logic
- Introduction to Higher Mathematics - Lecture 6: Predicate Logic
- A taste of linear logic, by Philip Wadler (pdf)
- Logic course materials from Cse371, Math371 @ Stony Brook University
- Modal Logic Playground
- Symbolic Logic: A First Course (2nd edition)
- Michael J. C. Gordon’s publications on HOL, et al
- Proofs and Types. By Jean-Yves Girard (full book)
- Sequent calculus:
- Truth:

- Curry: A Truly Integrated Functional Logic Language
- Logic programming for the social web
- Papers over @ minikanren.org
- Papers of Michael Hanus on Functional Logic Programming et al
- “Simply Logical: Intelligent Reasoning by Example” by Peter Flach

- A Computational Introduction to Number Theory and Algebra, by Victor Shoup (full book)
- A Course in Universal Algebra (full book)
- The Development of Proof Theory
- Mathematics and Computation blog by Andrej Bauer
- (video) Mathematics for Computer Science @ MIT opencourseware
- nLab: A wiki-lab for collaborative work on Mathematics, Physics and Philosophy with a Category Theory point of view
- Roland Backhouse’s Publications
- The multinomial coefficients
- The Nature of Code (full book)
- Order Theory
- Practical Foundations of Mathematics, by Paul Taylor (full book)
- Category Theory:
- Set theory:
- Linear Algebra:

- Edsger W. Dijkstra on the historical rejection of Science and the state of Computing Science
- John Baez on Research Tactics

- (video) Advanced Topics in Programming Languages - Course - 2013 Fall: 15-819
- Comparing Objective Caml and Standard ML
- Formal programming language semantics (course notes)
- (video) Bunch of interesting talks from Robin Milner Symposium 2012
- (video) Introduction to Programming Languages (CSCI 1730) and book
- Ken Slonneger’s Formal Syntax and Semantics of Programming Languages book
- (video) Null References: The Billion Dollar Mistake
- Practical Foundations for Programming Languages, Second Edition. By Robert Harper (full book) (pdf)
- Principle of Parametricity (wikipedia)
- Programming and Programming Languages (2015 ed) (full book)
- Programming Languages: Application and Interpretation
- Simon Peyton Jones: papers

- Parametric Polymorphism @ Wikipedia
- Recent Applications of Parametricity, by Janis Voigtländer (pdf)

- 99 haskell/scala/prolog problems
- Hacker Rank
- Rosetta Code: Solutions to the same task in as many different languages as possible

- (video) The Science of Insecurity

- Boolean Blindness
- (video) Certifying your car with Erlang: John Hughes
- How to Design Programs
- (video) May Your Data Ever Be Coherent
- rise4run.com – A community of software engineering tools
- A Short Introduction to the Art of Programming
- (video) Simple Made Easy Presented by Rich Hickey
- (video) Stop Writing Classes
- (video) The Value of Values
- Type Classes:

- (video) Caml Trading, by Yaron Minsky
- (video) Composing contracts: an adventure in financial engineering (material)
- Facebook Engineering: What is Facebook’s architecture?
- [erlang-questions] What can I only do in Erlang?

- (video) “Propositions as Types” by Philip Wadler
- Mailing list discussion on the concept of “type” used by Russell vs. that used in CS
- (video) Datatype-Generic Programming in Haskell, by Andres Löh
- Existentially quantified types
- Fast and Loose Reasoning is Morally Correct
- (video) High Wizardry in the Land of Scala
- History of Type Theory @ Wikipedia
- (video) Homotopy Type Theory (full course)
- (video) Lambda Jam 2014 - Gershom Bazerman - Homotopy Type Theory: What’s the Big Idea
- (video) A survey of Univalent Foundations (by Eric Finster, November 13th, 2014)
- On the formulae–as–types correspondence for classical logic
- Phantom Type / Generalized Algebraic Data Type
- (video) Sexy Types – Are We Done Yet?
- Some type systems are much better than others
- Stephanie Weirich’s Publications
- Tagged union @ Wikipedia
- The Theory of Classification - A Course on OO Type Systems
- (video) Type Systems. A talk by Prof. Vladimir Voevodsky
- (video) Type functions, by Simon Peyton Jones
- Types, Logic, and Verification
- Types, and two approaches to problem solving. Blog post.
- [TYPES] Types in distributed systems
- Unification (computer science) @ Wikipedia
- What is the logarithm or root operation in type-space?
- Logic:
- Dependent types:
- A Tutorial Implementation of a Dependently Typed Lambda Calculus
- Certified Programming with Dependent Types by Adam Chlipala
- (video) Conor McBride’s “Dependently-Typed Metaprogramming (in Agda)” course (additional material)
- (video) Dependently Typed Programming in Idris: A Demo. By David Raymond Christiansen
- (video) Idris: Practical Dependent Types with Practical Examples, by Brian McKenna
- Learning type-level hacking (dependent types, etc)
- Learning Dependent Types
- (video) Scala vs Idris: Dependent Types, Now and in the Future
- (video) A Taste of Agda with Francesco Mazzoli
- (video) From Scheme to Dependent Types in 100 lines by Gershom Bazerman (Part 1)

- Formal systems:
- Type inference:
- Type systems:
- Subtyping: