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
Transcript of Christopher Strachey: First-class Citizen · 2017-06-08 · ML [HMM86, Mi187], Miranda1[Tur85], and...
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/2.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/4.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/5.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/6.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/7.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/11.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/13.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/15.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/17.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/18.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/20.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/21.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/22.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/23.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/24.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/25.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/27.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/28.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/29.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/30.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/32.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/33.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/34.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/35.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/36.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/37.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/38.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/39.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/40.jpg)
![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](https://reader036.fdocuments.in/reader036/viewer/2022081405/5f07c5887e708231d41eaa0f/html5/thumbnails/41.jpg)