Best Functional programming Videos
「Functional programming」下面有225部被不同的人、在不同月份推荐过的视频。挑的时候先看对象:入门24部,适合还没学过的人;进阶137部,适合已经懂术语的人;普通向18部,按兴趣就能看;更硬的46部,留给想看推导或细节的人。这一类数量最多的是演讲,所以它们的共同点是一位讲者把一个判断讲完,例子是为了撑住这个判断。常出现的频道包括ClojureTV、Strange Loop Conference、Google TechTalks。目录给这个主题划的范围是:Functional programming: Haskell, OCaml, Clojure, Erlang, Elixir, Scala, Lisp, Scheme, immutability, monads, purity, pattern matching, Rich Hickey, Simon Peyton Jones.如果只看三部,就从《Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich》开始,它负责把问题讲出画面;然后看《The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019》,换一种讲法或例子;最后看《"Simple Made Easy" - Rich Hickey (2011)》,留给已经有基础的人。页面按每页24部切开,顺序看的是被推荐跨越了多少个月,不是播放量。每条标题下面那一句是这部片子自己的内容说明,用来区分它在讲定义、过程、演示还是观点。点进去能看到推荐原话、原文链接和适合谁看。看的时候把强烈推荐当成有人明确叫你去看,把引用当成只是拿来举例,把批评留下来对照,不要把每条评论都当成同一力度。

Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Jim Weirich's RubyConf 2012 talk derives the Y combinator step by step, live-coding in Ruby lambdas.

The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
Sasa Juric explains what makes Erlang and Elixir suited to server-side systems, focusing on the BEAM concurrency model rather than syntax or ecosystem.

"Simple Made Easy" - Rich Hickey (2011)
Rich Hickey's Strange Loop 2011 keynote distinguishing 'simple' (not intertwined) from 'easy' (familiar or near at hand).

"Making Impossible States Impossible" by Richard Feldman
Richard Feldman's elm-conf talk on designing models so that bugs from impossible application states cannot occur, using Elm's compiler and types.

William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
William Byrd presents at Papers We Love NYC on what he calls the most beautiful program ever written, a Lisp interpreter written in Lisp.

The Value of Values with Rich Hickey
Rich Hickey's JaxConf 2012 keynote examines what values are and why immutable values matter as information systems grow more complex and data gets bigger.

Why Isn't Functional Programming the Norm? – Richard Feldman
Richard Feldman argues that functional programming is not the norm largely because of historical accidents, such as C++ popularity, platform exclusivity, marketing spend and network effects, rather than merit.

Maybe Not - Rich Hickey
Rich Hickey's Clojure/Conj 2018 keynote argues that Maybe/Option types and rigid type signatures are a poor way to model data that changes over time.

Solving Problems the Clojure Way - Rafal Dittwald
Rafal Dittwald's Clojure/north talk shows how to move from writing Java-style code in Clojure to thinking in data-driven, functional terms.

Lecture 1A: Overview and Introduction to Lisp
The first lecture of MIT's 6.001 (SICP) with Abelson and Sussman, giving an overview of the course and an introduction to Lisp.

Conway's Game Of Life in APL
A short Dyalog demonstration building Conway's Game of Life in a single line of APL, step by step.

Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
The first lecture of MIT's 1986 6.001 Structure and Interpretation of Computer Programs, given by Harold Abelson, introducing Lisp and the idea of computer science as the study of process.

Effective Programs - 10 Years of Clojure - Rich Hickey
Rich Hickey's talk at Clojure's tenth anniversary on the kind of programs Clojure is designed for.

Erlang Factory 2014 - That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp
Rick Reed of WhatsApp explains at Erlang Factory 2014 how the service scaled to billions of messages with a very small engineering team.

Hammock Driven Development - Rich Hickey
Rich Hickey's philosophical talk from the first Clojure Conj in 2010.

Tim Ewald - Clojure: Programming with Hand Tools
Tim Ewald's Clojure/conj talk uses furniture making with hand tools versus machine tools as an allegory for software.

Brian Beckman: Don't fear the Monad
Microsoft's Brian Beckman gives an hour-long, whiteboard-style walk through monads, building from function composition and monoids using school-level math.

Ruby Conf 12 - Boundaries by Gary Bernhardt
Gary Bernhardt's RubyConf 2012 talk on testing in isolation without mocking everything.

Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming
Christian Schafmeister's Google Tech Talk on designing spiroligomer molecules and building Clasp, a Common Lisp on LLVM that interoperates with C++, to program molecular design.

"Simple Made Easy" - Rich Hickey (2011)
Rich Hickey's Strange Loop 2011 keynote separates 'simple' (not intertwined) from 'easy' (familiar or near at hand) and argues that software complexity comes from complecting things.

Spec-ulation Keynote - Rich Hickey
Rich Hickey's keynote on software versioning, arguing that breaking changes are the real problem and that libraries should only grow by providing more and requiring less.

Category Theory 1.1: Motivation and Philosophy
The first lecture in Bartosz Milewski's category theory series for programmers.

The Language of the System - Rich Hickey
Rich Hickey's 2013 talk applies language-design thinking to whole systems, covering names, queues, data, failure, and the interfaces between programs.

Invited Talk - Guy Steele
Guy Steele's invited talk at Clojure/conj on the informal metanotation computer scientists use in papers to describe languages.