SlideShare a Scribd company logo
Hitchhiker's Guide to
Functional Programming
Significantly trivialized
history of computing
Alonzo Church
Researched decidability of
algorithms and invented a
generic model of calculation –
the λ-calculus (early 1930s*)
*see https://en.wikipedia.org/wiki/Lambda_calculus
Alan Turing
Created a model of a generic
computer – the Universal Turing
machine (ca. 1936*)
*see https://en.wikipedia.org/wiki/Turing_machine
John von
Neumann
Created the architecture of
modern computers based
on the Universal Turing
machine (early 1940s*)
*see https://en.wikipedia.org/wiki/Von_Neumann_architecture
And PL features exploded...
GOTO, mutation, pointers, null refs, exceptions,
floating point numbers, inheritance, interfaces,
threads…
See http://blog.ploeh.dk/2015/04/13/less-is-more-language-features/ for a discussion of harmful PL features
John McCarthy
Created Lisp language based on
the λ-calculus and featuring
macros (ca. 1958*)
*see http://www-formal.stanford.edu/jmc/history/lisp/lisp.html
Edsger Dijkstra
Made a case against the
GOTO statement (in 1968*)
*see https://en.wikipedia.org/wiki/Edsger_W._Dijkstra
A case against mutation
It’s about time to ban the next offender
What’s wrong with this code?
int sum = 0;
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
sum += i * i;
}
System.out.println(sum);
Refactoring exercise
Erik Meijer
Recursion is GOTO of
functional programming
● λ-Calculus is a model of computation
● Program is data, generic evaluation algorithm
● Turing machine is a model of a computer
● Program is algorithm
Turing machine and λ-calculus are proven equivalent in terms of computability
Summary
Learn More (click on the images)
Questions?

More Related Content

PDF
Resume-Migallos, Madeleine
PPTX
Servicios de la Web 2.0
PDF
cirugia laparascopica
PPTX
Creative final project
PDF
10 Macroeconomic Forecasts for 2016
PPTX
Taller de busquedad de informacion ivenis
Resume-Migallos, Madeleine
Servicios de la Web 2.0
cirugia laparascopica
Creative final project
10 Macroeconomic Forecasts for 2016
Taller de busquedad de informacion ivenis

Viewers also liked (6)

PDF
E-Metrics Paris 2010 : Testing & E-Commerce
PDF
Mantenimiento Preventivo
PDF
AWSの運用自動化サービス Cloud Automator で攻めのシステム運用 amimoto スタック編
PPTX
Gestion documental -Tipos de archivo
DOCX
Marketing Strategies of Tata motors
DOCX
Mary Jean Aquino Bustaliño-resume
E-Metrics Paris 2010 : Testing & E-Commerce
Mantenimiento Preventivo
AWSの運用自動化サービス Cloud Automator で攻めのシステム運用 amimoto スタック編
Gestion documental -Tipos de archivo
Marketing Strategies of Tata motors
Mary Jean Aquino Bustaliño-resume
Ad

Similar to Hitchhiker's Guide to Functional Programming (20)

PPT
Chapter1
PPTX
Can programming be liberated from the von neumann style?
PPT
Functional Programming - Past, Present and Future
PPT
Functional Programming Past Present Future
PPTX
Good functional programming is good programming
PDF
Introduction to functional programming (In Arabic)
PPTX
A brief history of functional programming (edited)
PPTX
From Imperative to Functional Programming (for Absolute Beginners)
PPTX
History of F#, and the ML family of languages.
PDF
Functional Programming Principles & Patterns
PPT
Introduction Functional Programming - Tech Hangout #11 - 2013.01.16
PPT
Introductory func prog
PPTX
The joy of functional programming
PDF
Lambda Calculus & Functional programming
PPS
Presentation of GetTogether on Functional Programming
PPTX
Turing Goes to Church
PPTX
Functional programming
PDF
Functional Programming 之二三事
PPT
Life & Work of Robin Milner | Turing100@Persistent
PPTX
Chapter1
Can programming be liberated from the von neumann style?
Functional Programming - Past, Present and Future
Functional Programming Past Present Future
Good functional programming is good programming
Introduction to functional programming (In Arabic)
A brief history of functional programming (edited)
From Imperative to Functional Programming (for Absolute Beginners)
History of F#, and the ML family of languages.
Functional Programming Principles & Patterns
Introduction Functional Programming - Tech Hangout #11 - 2013.01.16
Introductory func prog
The joy of functional programming
Lambda Calculus & Functional programming
Presentation of GetTogether on Functional Programming
Turing Goes to Church
Functional programming
Functional Programming 之二三事
Life & Work of Robin Milner | Turing100@Persistent
Ad

More from Sergey Shishkin (8)

PDF
Scaling Engineering Organizations with Patterns
PDF
Hitchhiker's Guide to Functional Programming
PPTX
NOSQL - not only sql
PPTX
REST - You're Doing It Wrong
PPTX
Specification by Example
PDF
NOSQL in the Cloud
PPTX
Orthogonal Architecture
PPT
Asynchronous Messaging @DNUG Cologne, 07.04.2009
Scaling Engineering Organizations with Patterns
Hitchhiker's Guide to Functional Programming
NOSQL - not only sql
REST - You're Doing It Wrong
Specification by Example
NOSQL in the Cloud
Orthogonal Architecture
Asynchronous Messaging @DNUG Cologne, 07.04.2009

Recently uploaded (20)

PDF
project resource management chapter-09.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
A Presentation on Touch Screen Technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
1. Introduction to Computer Programming.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
A Presentation on Artificial Intelligence
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Tartificialntelligence_presentation.pptx
project resource management chapter-09.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Web App vs Mobile App What Should You Build First.pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Heart disease approach using modified random forest and particle swarm optimi...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A Presentation on Touch Screen Technology
Encapsulation_ Review paper, used for researhc scholars
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Programs and apps: productivity, graphics, security and other tools
1. Introduction to Computer Programming.pptx
WOOl fibre morphology and structure.pdf for textiles
A Presentation on Artificial Intelligence
A comparative analysis of optical character recognition models for extracting...
TLE Review Electricity (Electricity).pptx
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25-Week II
Tartificialntelligence_presentation.pptx

Hitchhiker's Guide to Functional Programming

  • 3. Alonzo Church Researched decidability of algorithms and invented a generic model of calculation – the λ-calculus (early 1930s*) *see https://en.wikipedia.org/wiki/Lambda_calculus
  • 4. Alan Turing Created a model of a generic computer – the Universal Turing machine (ca. 1936*) *see https://en.wikipedia.org/wiki/Turing_machine
  • 5. John von Neumann Created the architecture of modern computers based on the Universal Turing machine (early 1940s*) *see https://en.wikipedia.org/wiki/Von_Neumann_architecture
  • 6. And PL features exploded... GOTO, mutation, pointers, null refs, exceptions, floating point numbers, inheritance, interfaces, threads… See http://blog.ploeh.dk/2015/04/13/less-is-more-language-features/ for a discussion of harmful PL features
  • 7. John McCarthy Created Lisp language based on the λ-calculus and featuring macros (ca. 1958*) *see http://www-formal.stanford.edu/jmc/history/lisp/lisp.html
  • 8. Edsger Dijkstra Made a case against the GOTO statement (in 1968*) *see https://en.wikipedia.org/wiki/Edsger_W._Dijkstra
  • 9. A case against mutation It’s about time to ban the next offender
  • 10. What’s wrong with this code? int sum = 0; for (int i = 1; i <= 10; i++) { if (i % 2 == 0) sum += i * i; } System.out.println(sum);
  • 12. Erik Meijer Recursion is GOTO of functional programming
  • 13. ● λ-Calculus is a model of computation ● Program is data, generic evaluation algorithm ● Turing machine is a model of a computer ● Program is algorithm Turing machine and λ-calculus are proven equivalent in terms of computability Summary
  • 14. Learn More (click on the images)