Post on 20-May-2020
Post Functional
Thursday, January 10, 13
Extracting energy from the Turing TarpetAlan Kay (Turing Centenary)
Thursday, January 10, 13
WHATs not HOWs
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
miniKanren
Thursday, January 10, 13
miniKanren๏ 200 lines of Scheme
Thursday, January 10, 13
miniKanren๏ 200 lines of Scheme๏ Purely functional monadic design
Thursday, January 10, 13
miniKanren๏ 200 lines of Scheme๏ Purely functional monadic design
๏ Backtracking for “free”
Thursday, January 10, 13
miniKanren๏ 200 lines of Scheme๏ Purely functional monadic design
๏ Backtracking for “free”๏ Relatively efficient implementation
Thursday, January 10, 13
miniKanren๏ 200 lines of Scheme๏ Purely functional monadic design
๏ Backtracking for “free”๏ Relatively efficient implementation๏ Lightweight embedding of relational
programming
Thursday, January 10, 13
core.logic
Thursday, January 10, 13
core.logic๏ emphasize efficiency
Thursday, January 10, 13
core.logic๏ emphasize efficiency๏ emphasize polymorphism
Thursday, January 10, 13
core.logic๏ emphasize efficiency๏ emphasize polymorphism
๏ all critical parts of the system should allow open extension: unification, constraints, solvers, search strategies, etc.
Thursday, January 10, 13
Core Language
Thursday, January 10, 13
demo
Thursday, January 10, 13
Thursday, January 10, 13
December 17, 1962
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
Peter Norvig points out,24 billion candidate solutions
Thursday, January 10, 13
demo
Thursday, January 10, 13
Constraints!
Thursday, January 10, 13
Thursday, January 10, 13
Thursday, January 10, 13
demo
Thursday, January 10, 13
What’s this good for?
Thursday, January 10, 13
Thursday, January 10, 13
๏ Complex configuration / validation (LonoCloud, Pallet, C2 Grammar of Graphics)
Thursday, January 10, 13
๏ Complex configuration / validation (LonoCloud, Pallet, C2 Grammar of Graphics)
๏ Static Analysis (Ekeko - Java Eclipse, Kibit - Clojure source linter)
Thursday, January 10, 13
๏ Complex configuration / validation (LonoCloud, Pallet, C2 Grammar of Graphics)
๏ Static Analysis (Ekeko - Java Eclipse, Kibit - Clojure source linter)
๏ Declarative GPU Programming (Indiana University)
Thursday, January 10, 13
๏ Complex configuration / validation (LonoCloud, Pallet, C2 Grammar of Graphics)
๏ Static Analysis (Ekeko - Java Eclipse, Kibit - Clojure source linter)
๏ Declarative GPU Programming (Indiana University)
๏ Supporting type inference? (Typed Clojure)
Thursday, January 10, 13
Culture
Thursday, January 10, 13
๏ OOP, FP, LP - all old stuff
Culture
Thursday, January 10, 13
๏ OOP, FP, LP - all old stuff
๏ Mainstream culture around OOP
Culture
Thursday, January 10, 13
๏ OOP, FP, LP - all old stuff
๏ Mainstream culture around OOP
๏ FP gaining more and more traction
Culture
Thursday, January 10, 13
๏ OOP, FP, LP - all old stuff
๏ Mainstream culture around OOP
๏ FP gaining more and more traction
๏ We’re writing different (hopefully simpler) kinds of programs
Culture
Thursday, January 10, 13
๏ OOP, FP, LP - all old stuff
๏ Mainstream culture around OOP
๏ FP gaining more and more traction
๏ We’re writing different (hopefully simpler) kinds of programs
๏ LP still at the fringes
Culture
Thursday, January 10, 13
๏ OOP, FP, LP - all old stuff
๏ Mainstream culture around OOP
๏ FP gaining more and more traction
๏ We’re writing different (hopefully simpler) kinds of programs
๏ LP still at the fringes
๏ What kind of programs will we write?
Culture
Thursday, January 10, 13
Questions?
Thursday, January 10, 13