17
Functional Programming from First Principles <v> := a|b|c|...|z <e> := <v>|(\<v> <e>)|(<e> <e>) Presented by Melvin Zhang [email protected]

Functional programming from first principles

Embed Size (px)

Citation preview

Page 1: Functional programming from first principles

Functional Programming

from First Principles

<v> := a|b|c|...|z

<e> := <v>|(\<v> <e>)|(<e> <e>)

Presented by Melvin [email protected]

Page 2: Functional programming from first principles

http://www.cosmiqo.com

Page 3: Functional programming from first principles

http://magarena.github.io

Page 4: Functional programming from first principles
Page 5: Functional programming from first principles
Page 6: Functional programming from first principles

http://www.ioccc.org/2012/tromp/tromp.c

Page 7: Functional programming from first principles

John Tromp, https://tromp.github.io/

Page 8: Functional programming from first principles

http://www.quotessays.com/bio/alonzo-church.html

Page 9: Functional programming from first principles

http://www.princeton.edu/turing/alan/photos/

Page 10: Functional programming from first principles

The Church-Turing thesis

Page 11: Functional programming from first principles

Demo!

Page 12: Functional programming from first principles

Functions are values.

Page 13: Functional programming from first principles

Functions have no side effects.

Page 14: Functional programming from first principles

May be lazy or eager.

Page 15: Functional programming from first principles

May be untyped or typed.

Page 16: Functional programming from first principles

Further readings

• Church’s Thesis and Functional Programming,David Turner (2006)

• http://www.ioccc.org/2012/tromp/hint.html

• http://github.com/melvinzhang/binary-lambda-calculus

Page 17: Functional programming from first principles

http://www.meetup.com/Singapore-Clojure-Meetup/