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部切开,顺序看的是被推荐跨越了多少个月,不是播放量。每条标题下面那一句是这部片子自己的内容说明,用来区分它在讲定义、过程、演示还是观点。点进去能看到推荐原话、原文链接和适合谁看。看的时候把强烈推荐当成有人明确叫你去看,把引用当成只是拿来举例,把批评留下来对照,不要把每条评论都当成同一力度。

"Building a Toolkit for Design" by Matthew Griffith
Matthew Griffith, creator of elm-ui, presents a toolkit for designing layouts in Elm as an alternative to CSS.

JSON Parser 100% From Scratch in Haskell (only 111 lines)
Tsoding live-codes a JSON parser from scratch in Haskell in about 111 lines, using only the standard library.

"Programming Should Eat Itself" by Nada Amin
Nada Amin's Strange Loop talk on programming languages that build on themselves, centered on towers of interpreters and nestable interpretation in Scheme.

Joe Armstrong & Jeremy Ruston - Intertwingling the Tiddlywiki with Erlang | Code Mesh LDN 18
Joe Armstrong, creator of Erlang, and Jeremy Ruston, creator of TiddlyWiki, discuss hypertext, Ted Nelson's idea of intertwingled knowledge, and a way to combine TiddlyWiki with Erlang.

Erlang Factory SF 2016 Keynote Phoenix and Elm – Making the Web Functional
A joint Erlang Factory 2016 keynote by Phoenix creator Chris McCord and Elm creator Evan Czaplicki on using the two together, including Phoenix.Presence design and PubSub optimizations.

Monads and Gonads
Douglas Crockford's Google Tech Talk explains monads without category theory or Haskell, implementing them in JavaScript and tying them to Ajax and promises.

CUFP 2013: Julien Verlaguet, Facebook: Analyzing PHP statically
Julien Verlaguet of Facebook describes applying static analysis and type inference to a very large PHP codebase, using OCaml.

Category Theory in Life - Eugenia Cheng
Eugenia Cheng gives the opening keynote at Lambda World 2017, presenting category theory as very abstract algebra whose abstraction gives it broad applicability.

Category Theory by Tom LaGatta
Tom LaGatta's talk on category theory at a 2014 LispNYC meetup, covering objects, morphisms and the basic ideas in an informal, conversational style.

RacketCon 2013: Dan Liebgold - Racket on the Playstation 3? It's Not What you Think!
Dan Liebgold of Naughty Dog gives a RacketCon 2013 keynote on using Racket in PlayStation 3 game development.

Computer Science - A Guide for the Perplexed • Joe Armstrong • GOTO 2018
Joe Armstrong's GOTO 2018 talk contrasts the problems computer scientists study with the problems users have.

Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic language
Simon Peyton Jones presents linear types for Haskell, showing how practical linearity can fit into a higher-order polymorphic language.

“What is Success?” by Evan Czaplicki
Elm creator Evan Czaplicki's 2018 Elm Europe talk on how to define success for an open source project and language community.

Effective ML
Yaron Minsky of Jane Street gave this talk to Harvard's OCaml-based CS51 class in 2010.

Zach Oakes - Making Games at Runtime with Clojure
Zach Oakes explains why Clojure suits making games at runtime, so designers can experience their work as they build it.

Four Languages from Forty Years Ago - Scott Wlaschin
Scott Wlaschin's NDC Oslo talk on four 1970s languages, SQL, Prolog, ML and Smalltalk.

Alexis King - “Effects for Less” @ ZuriHac 2020
Alexis King's ZuriHac 2020 talk on how effect systems in Haskell can be implemented efficiently.

OCaml Workshop 2020 - State of the OCaml Platform 2020
A one-hour OCaml Workshop 2020 talk on the state of the OCaml Platform, covering IDE support, next steps for the tooling and plans for 2020-2021.

Clojure for Java Programmers Part 1 - Rich Hickey
Rich Hickey introduces Clojure to the NYC Java Study Group in the first of a two-part talk.

Philip Wadler - Propositions as Types (Lambda Days 2016)
Philip Wadler's Lambda Days talk on propositions as types, the link between logic and computation that underlies theorem provers and programming language design.

Dynamic Languages Wizards Series - Panel on Language Design
A 2001 panel with Paul Graham, John Maeda, Jonathan Rees and Guy Steele on programming language design, part of the Dynamic Languages Wizards Series.

REBL - Stuart Halloway
Stuart Halloway introduces REBL, a graphical, interactive tool for browsing Clojure data, extracted from Datomic tools.

"How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)
Guy Steele's Strange Loop 2010 talk argues that programmers should not have to think about parallelism, and that languages should support algorithms built on independence and divide-and-conquer.

Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt
A Clojure/conj 2016 talk demoing Barliman, a prototype smart editor that does program synthesis.