christopher strachey: first-class citizen · 2017-06-08 · ml [hmm86, mi187], miranda1[tur85], and...

41
Christopher Strachey: First-class Citizen Philip Wadler University of Edinburgh Strachey 100, 19 November 2016

Upload: others

Post on 17-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Christopher Strachey:First-class Citizen

Philip WadlerUniversity of Edinburgh

Strachey 100, 19 November 2016

Page 2: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 3: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Mervyn Pragnell

Page 4: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 5: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 6: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 7: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 8: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

B is for BonnieC is for Christopher

Page 9: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

CPLCombined Programming LanguageCambridge Programming Language

Christopher’s Programming Language

Page 10: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

BCPL

Page 11: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 12: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

BCPL

Page 13: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 14: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

BCPL

Page 15: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 16: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Fundamental Concepts in Programming Languages

Page 17: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 18: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 19: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Functions as First-Class Citizens

Page 20: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 21: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 22: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 23: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 24: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 25: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 26: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Polymorphism

Page 27: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 28: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 29: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 30: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 31: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Type Classes

Page 32: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 33: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 34: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 35: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 36: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 37: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Type classesHaskellClean

MercuryHal

IsabelleCoqAgdaScala

C++ conceptsRust

Page 38: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc

Semantics vs Syntax

Page 39: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 40: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc
Page 41: Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and other languages. On the other hand, there is no widely accepted approach to ad-hoc