Philip Wadler - Propositions as Types (Lambda Days 2016)
Erlang Solutions2 HN recommenders · recommended in 2 months, 2016-2021
20K views · 10 years ago · talk · evergreen
Philip Wadler's Lambda Days talk on propositions as types, the link between logic and computation that underlies theorem provers and programming language design.
Recommended as an exceptional whirlwind tour of the foundations of computer science.
42:43"Propositions as Types" by Philip Wadler
Strange Loop Conference
143K views • 11 years ago
1:02:15Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript
Fullstack Academy
227K views • 9 years ago
1:04:35The Algebra of Algebraic Data Types
London Haskell
27K views • 13 years ago
1:42:53Edward Kmett - Type Classes vs. the World
Boston Haskell
36K views • 11 years ago
1:33:37Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)
jasonofthel33t
69K views • 12 years ago
12:56Stephen Wolfram's Introduction to the Wolfram Language
Wolfram
924K views • 12 years ago
39:40"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference
15K views • 8 years ago
59:03Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17
Dyalog User Meetings
7K views • 9 years ago
38:36"A Little Taste of Dependent Types" by David Christiansen
Strange Loop Conference
48K views • 8 years ago
54:31Does APL Need a Type System? by Aaron W Hsu at #FnConf18
ConfEngine
6K views • 7 years ago
1:03:34Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic language
Curry On!
19K views • 8 years ago
43:23Edwin Brady - Idris 2: Type-driven development of Idris | Code Mesh LDN 18
Code Sync
20K views • 7 years ago
50:49Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019
KanDDDinsky
74K views • 6 years ago
40:15Bringing Types to Elixir by Giuseppe Castagna and Guillaume Duboc | ElixirConf EU 2023
Code Sync
7K views • 3 years ago
1:09:24Effective ML
Jane Street
30K views • 10 years ago
1:00:58The Next Five Years of ClojureScript - David Nolen
Metosin
19K views • 10 years ago
1:03:29Maybe Not - Rich Hickey
ClojureTV
181K views • 7 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:12:14Beyond functional programming: a taste of Verse. Simon Peyton Jones & Tim Sweeney | Lambda Days 2023
Code Sync
30K views • 3 years ago
1:07:10Brian Beckman: Don't fear the Monad
jasonofthel33t
415K views • 13 years ago
3 comments from Hacker News
I suggest a combination of theory (videos/books/papers) and practice. For practice; I highly recommend learning Haskell. If you are new to functional programming then learning Haskell is challenging and frustrating but as with any new topic the key is to not give up but keep probing. A good recent development is lot of mainstream languages are beginning to include functional paradigms such as lambda, closures etc., For example Java introduced lambda expressions, Javascript has had them for a while now. But from a first-principles stand point Haskell is as good as it gets so please do learn and code in Haskell if not at work then at least side projects. For theory I've found following material super useful. 0. This[0] is an incredibly awesome lecture where Phil Wadler takes us on a whirlwind tour of computer science. He talks us through different foundational structures on which almost everything (hardware and software) about computer science is built. I watch this lecture once every few months :-). It helps you build up context and ground various topics. 1. The one and only SICP. Book[1] and lectures[2]. 2. Automata theory[3]. This isn't an easy course but gets to the heart of the matter i.e., the meaning of "function" and what how can it be mechanically "computed". 3. Category Theory is where lot of active research is happening in CS theory. This is a very good lecture series[4]. The pace may seem a bit meandering but don't be put off. Bartosz is a gifted teacher and works i
just to note this talk briefly alludes to another subject, the Curry–Howard isomorphism, something Philip Wadler had similarly given a talk about at Lambda Days (2016) titled 'Propositions as Types'[1] (slides [2] and the video recording[3]). [1]: link [2]: link [3]: ▶ this video
> Neither is static typing. It's a layer of protection, much like tests. Not true. The curry-howard correspondence shows the relationship between typed programs and proofs. I recommend you watch a Phillip Wadler talk about this: ▶ this video Note: This doesn't mean that type systems can prove _all assertions_ about a program, but type systems do indeed work as provers. > I don't think that's necessarily true. You still need to write tests with or without static typing. Those tests you need to write anyway will catch type errors in a dynamically typed language that a statically typed language picked up at compile time.. This isn't necessarily true unless you test for all inputs (which tends to be infeasible in most cases). A type system can reject inputs by virtue of their lack of conformance to a type, which eliminates the need to test them. > The question is whether you need to write more tests and whether the greater number of tests offsets the greater amount of code you need to write to statically type your code. I don't have any evidence to support this (if someone does or has proof to the contrary, I'd love to see it referenced here), but I believe there is almost no overhead imposed by a static type system with type inference. > Ditto for types. I acknowledged this above, you just removed that part from the quote. In practice I've never had a bug with the type system (that I'm aware of), while I've seen hundreds of bugs from incorrect test assertions.