SlideShare une entreprise Scribd logo
1  sur  22
Turing Goes to Church
What can a computer do?
Introduction
Foundations of Mathematics.
Computability and
The Halting Problem
David Hilbert posed questions that drove
mathematics for a century: #2: “Can we prove the
rules of arithmetic are consistent?”
Early 20th Century Computers
Entscheidungsproblem
The Halting Problem asks “When can
we send these people home?”
Alan Turing: Idunno
What is this Turing Machine we speak of?
The diagram at right shows different
formal models of automata, or logic
machines.
Each inner layer is simpler and more
understandable.
Outer ones are more powerful.
Was this Turing’s Inspiration
The first application of punched cards was in looms like
this one shown here.
The cards allow the machine to control the threads to
make elaborate, repeatable patterns in the fabric.
The von Neumann Architecture
By the time WW2 ended,
mathematician John von
Neumann proposed this
architecture for computer
hardware.
This is what most
computers use today.
BASIC Procedural Code
This convinced me to reject Computers & become a Mathematician.
10 X = 5
20 X = X + 4
30 PRINT X
It follows a procedure: this, then do that, then keep on until done
Billionaire 101
While I was sticking my nose up at
BASIC, a kid dropped out of Harvard to
punch holes this strip of paper tape.
Whereas I used the chads to pull pranks
on fellow students.
Bill Gates started Microsoft
This is Microsoft BASIC
The Limits of Bill Gates’ Microsoft
“The Software Crisis”
Code Reuse Is Hard
Testing/Debugging Is Hard
Concurrency and Asynchrony Is Hard
Extreme Perseverance Disorder (Only Autistic Savants Need Apply)
Procedural vs. Functional Programming
How vs. What
N = N + 1 is really bad algebra. Do I
subtract N from both sides?
We need total awareness of every thing
the code might do.
vs tools translating “what” into “how”
Lambda Calculus
...a formal system in mathematical logic for expressing
computation based on function abstraction and application
using variable binding and substitution. It is a universal model
of computation that can be used to simulate any Turing
machine.
-- Wikipedia
Manage 6 CPU Cores & use the Internet
Suppose, we seek to efficiently program
a 6-core Apple iPhone X. And keep all
those cores busy.
...and go to the web to access data with
varying latency.
Procedural programming just doesn’t
cut it.
Actionable λ-Calculus
Let’s start with sin
sin = angle => opposite / hypotenuse
Note: no side effects
Note: memoization == “CRC Handbook
of Mathematical Tables”
Every λ can be a function of One Argument
IsEqual = (x, y) => (x === y)
IsFour = (y) => IsEqual(4, y)
CurryiedIsEqual = x => y => (x === y)
Functions can return functions.
Haskell Curry: an N-argument function made from 1-argument functions that each
return a function
Functional Programming Advantages
Pure functions are easier to test
No side effects mean fewer “Chesterton fences” => easier refactoring
“What was the earlier programmer thinking?”
Immutable data mean no need for concurrency locking
Parallelized, asynchronous execution
Mathematical reasoning about code
Functional (map/reduce) Sandwitch
We need only write and test
two functions:
● Slice
● Stack
It’s troublesome to slice/stack
different things, but each
difference can be tested in
isolation.
Algebraic Data Types
Algebra is more than just the stuff we did in High
School. It also governs phenomena like Rubik's
cubes or quarks.
Capture domain semantics in Algebraic Data Types
(Joins and Unions)
Algebraic Data Types (in functional type systems)
enable TypeScript/Haskell/F# compilers to catch
more errors.
Conflict-Free Replicated Data Types
Suppose a blockchain
node is temporarily
disconnected...
Idempotent functions
f(x) = f(f(x)) = f(f(f(x))) …
Stuff I’m Not Talking About
“A monad is just a monoid on the category of endofunctors.”
Functional programming introduces side-effects in a controlled, mathy way. These
arcane terms scare pointy-haired bosses and negotiate fat raises:
● Monoids,
● Functors,
● Monads,
● Applicatives
Trigger Warning
Speculation follows about a biological difference between XX-chromosomed
people and XY-chromosomed people. This is mere speculation. I welcome
experimental confirmation or refutation. Feel free to disagree.
Sex, Turing and Church
Some Boys seem more “spatially” oriented
Some Girls seem more “grammatically” oriented
Procedural Programming requires near-autistic perseverative obsessiveness
about every detail all over everything, hence male dominance in procedural
programming
Functional Programming requires a more linguistic/verbal approach to
programming, hence an opportunity for female involvement
Needed: Women in STEM
The Functional Programming paradigm may be a better fit for the female mind.
We need everyone leveraging their skills as best fitted.
Hence, getting females into STEM, and Functional Programming has come at a
great moment.
We should encourage all XY-chromosomed people with an inclination toward
technology to start learning Functional Programming

Contenu connexe

Similaire à Turing Goes to Church

Cognitive Science Unit 3
Cognitive Science Unit 3Cognitive Science Unit 3
Cognitive Science Unit 3CSITSansar
 
Our Concurrent Past; Our Distributed Future
Our Concurrent Past; Our Distributed FutureOur Concurrent Past; Our Distributed Future
Our Concurrent Past; Our Distributed FutureC4Media
 
Can computers think
Can computers thinkCan computers think
Can computers thinkGTClub
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningOswald Campesato
 
Algorithms - a brief introduction
Algorithms - a brief introductionAlgorithms - a brief introduction
Algorithms - a brief introductionGiacomo Belocchi
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningOswald Campesato
 
PPT slides - MACHINE PERCEPTION LABORATORY
PPT slides - MACHINE PERCEPTION LABORATORYPPT slides - MACHINE PERCEPTION LABORATORY
PPT slides - MACHINE PERCEPTION LABORATORYbutest
 
Models vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of ComplexityModels vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of ComplexityJulian Warszawski
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Geek Night 16.0 - Evolution of Programming Languages
Geek Night 16.0 - Evolution of Programming LanguagesGeek Night 16.0 - Evolution of Programming Languages
Geek Night 16.0 - Evolution of Programming LanguagesGeekNightHyderabad
 
object oriented-programming
object oriented-programmingobject oriented-programming
object oriented-programmingRajendran
 
Java and Deep Learning (Introduction)
Java and Deep Learning (Introduction)Java and Deep Learning (Introduction)
Java and Deep Learning (Introduction)Oswald Campesato
 
Lecture 1 Slides -Introduction to algorithms.pdf
Lecture 1 Slides -Introduction to algorithms.pdfLecture 1 Slides -Introduction to algorithms.pdf
Lecture 1 Slides -Introduction to algorithms.pdfRanvinuHewage
 
Artificial Intelligence for Undergrads
Artificial Intelligence for UndergradsArtificial Intelligence for Undergrads
Artificial Intelligence for UndergradsJose Berengueres
 
International journal of engineering issues vol 2015 - no 1 - paper3
International journal of engineering issues   vol 2015 - no 1 - paper3International journal of engineering issues   vol 2015 - no 1 - paper3
International journal of engineering issues vol 2015 - no 1 - paper3sophiabelthome
 
TypeScript and Deep Learning
TypeScript and Deep LearningTypeScript and Deep Learning
TypeScript and Deep LearningOswald Campesato
 

Similaire à Turing Goes to Church (20)

Cognitive Science Unit 3
Cognitive Science Unit 3Cognitive Science Unit 3
Cognitive Science Unit 3
 
Our Concurrent Past; Our Distributed Future
Our Concurrent Past; Our Distributed FutureOur Concurrent Past; Our Distributed Future
Our Concurrent Past; Our Distributed Future
 
Can computers think
Can computers thinkCan computers think
Can computers think
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
ENIC Symbols
ENIC SymbolsENIC Symbols
ENIC Symbols
 
Algorithms - a brief introduction
Algorithms - a brief introductionAlgorithms - a brief introduction
Algorithms - a brief introduction
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
PPT slides - MACHINE PERCEPTION LABORATORY
PPT slides - MACHINE PERCEPTION LABORATORYPPT slides - MACHINE PERCEPTION LABORATORY
PPT slides - MACHINE PERCEPTION LABORATORY
 
Models vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of ComplexityModels vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of Complexity
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Geek Night 16.0 - Evolution of Programming Languages
Geek Night 16.0 - Evolution of Programming LanguagesGeek Night 16.0 - Evolution of Programming Languages
Geek Night 16.0 - Evolution of Programming Languages
 
GeekNight: Evolution of Programming Languages
GeekNight: Evolution of Programming LanguagesGeekNight: Evolution of Programming Languages
GeekNight: Evolution of Programming Languages
 
object oriented-programming
object oriented-programmingobject oriented-programming
object oriented-programming
 
Jsai
JsaiJsai
Jsai
 
Java and Deep Learning (Introduction)
Java and Deep Learning (Introduction)Java and Deep Learning (Introduction)
Java and Deep Learning (Introduction)
 
Scala and Deep Learning
Scala and Deep LearningScala and Deep Learning
Scala and Deep Learning
 
Lecture 1 Slides -Introduction to algorithms.pdf
Lecture 1 Slides -Introduction to algorithms.pdfLecture 1 Slides -Introduction to algorithms.pdf
Lecture 1 Slides -Introduction to algorithms.pdf
 
Artificial Intelligence for Undergrads
Artificial Intelligence for UndergradsArtificial Intelligence for Undergrads
Artificial Intelligence for Undergrads
 
International journal of engineering issues vol 2015 - no 1 - paper3
International journal of engineering issues   vol 2015 - no 1 - paper3International journal of engineering issues   vol 2015 - no 1 - paper3
International journal of engineering issues vol 2015 - no 1 - paper3
 
TypeScript and Deep Learning
TypeScript and Deep LearningTypeScript and Deep Learning
TypeScript and Deep Learning
 

Dernier

UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesPrabhanshu Chaturvedi
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 

Dernier (20)

UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 

Turing Goes to Church

  • 1. Turing Goes to Church What can a computer do?
  • 2. Introduction Foundations of Mathematics. Computability and The Halting Problem David Hilbert posed questions that drove mathematics for a century: #2: “Can we prove the rules of arithmetic are consistent?”
  • 3. Early 20th Century Computers Entscheidungsproblem The Halting Problem asks “When can we send these people home?” Alan Turing: Idunno
  • 4. What is this Turing Machine we speak of? The diagram at right shows different formal models of automata, or logic machines. Each inner layer is simpler and more understandable. Outer ones are more powerful.
  • 5. Was this Turing’s Inspiration The first application of punched cards was in looms like this one shown here. The cards allow the machine to control the threads to make elaborate, repeatable patterns in the fabric.
  • 6. The von Neumann Architecture By the time WW2 ended, mathematician John von Neumann proposed this architecture for computer hardware. This is what most computers use today.
  • 7. BASIC Procedural Code This convinced me to reject Computers & become a Mathematician. 10 X = 5 20 X = X + 4 30 PRINT X It follows a procedure: this, then do that, then keep on until done
  • 8. Billionaire 101 While I was sticking my nose up at BASIC, a kid dropped out of Harvard to punch holes this strip of paper tape. Whereas I used the chads to pull pranks on fellow students. Bill Gates started Microsoft This is Microsoft BASIC
  • 9. The Limits of Bill Gates’ Microsoft “The Software Crisis” Code Reuse Is Hard Testing/Debugging Is Hard Concurrency and Asynchrony Is Hard Extreme Perseverance Disorder (Only Autistic Savants Need Apply)
  • 10. Procedural vs. Functional Programming How vs. What N = N + 1 is really bad algebra. Do I subtract N from both sides? We need total awareness of every thing the code might do. vs tools translating “what” into “how”
  • 11. Lambda Calculus ...a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation that can be used to simulate any Turing machine. -- Wikipedia
  • 12. Manage 6 CPU Cores & use the Internet Suppose, we seek to efficiently program a 6-core Apple iPhone X. And keep all those cores busy. ...and go to the web to access data with varying latency. Procedural programming just doesn’t cut it.
  • 13. Actionable λ-Calculus Let’s start with sin sin = angle => opposite / hypotenuse Note: no side effects Note: memoization == “CRC Handbook of Mathematical Tables”
  • 14. Every λ can be a function of One Argument IsEqual = (x, y) => (x === y) IsFour = (y) => IsEqual(4, y) CurryiedIsEqual = x => y => (x === y) Functions can return functions. Haskell Curry: an N-argument function made from 1-argument functions that each return a function
  • 15. Functional Programming Advantages Pure functions are easier to test No side effects mean fewer “Chesterton fences” => easier refactoring “What was the earlier programmer thinking?” Immutable data mean no need for concurrency locking Parallelized, asynchronous execution Mathematical reasoning about code
  • 16. Functional (map/reduce) Sandwitch We need only write and test two functions: ● Slice ● Stack It’s troublesome to slice/stack different things, but each difference can be tested in isolation.
  • 17. Algebraic Data Types Algebra is more than just the stuff we did in High School. It also governs phenomena like Rubik's cubes or quarks. Capture domain semantics in Algebraic Data Types (Joins and Unions) Algebraic Data Types (in functional type systems) enable TypeScript/Haskell/F# compilers to catch more errors.
  • 18. Conflict-Free Replicated Data Types Suppose a blockchain node is temporarily disconnected... Idempotent functions f(x) = f(f(x)) = f(f(f(x))) …
  • 19. Stuff I’m Not Talking About “A monad is just a monoid on the category of endofunctors.” Functional programming introduces side-effects in a controlled, mathy way. These arcane terms scare pointy-haired bosses and negotiate fat raises: ● Monoids, ● Functors, ● Monads, ● Applicatives
  • 20. Trigger Warning Speculation follows about a biological difference between XX-chromosomed people and XY-chromosomed people. This is mere speculation. I welcome experimental confirmation or refutation. Feel free to disagree.
  • 21. Sex, Turing and Church Some Boys seem more “spatially” oriented Some Girls seem more “grammatically” oriented Procedural Programming requires near-autistic perseverative obsessiveness about every detail all over everything, hence male dominance in procedural programming Functional Programming requires a more linguistic/verbal approach to programming, hence an opportunity for female involvement
  • 22. Needed: Women in STEM The Functional Programming paradigm may be a better fit for the female mind. We need everyone leveraging their skills as best fitted. Hence, getting females into STEM, and Functional Programming has come at a great moment. We should encourage all XY-chromosomed people with an inclination toward technology to start learning Functional Programming

Notes de l'éditeur

  1. The Hilbert question #2 led to the Halting Problem. In 1937 Alan Turing published On Computable Numbers, with an Application to the Entscheidungsproblem. His answer to the Halting Problem: Idunno.
  2. I always preferred it when I could pose a question as a finite-state machine. I think the coolest thing I’ve seen of late is something called Reactive systems where we have nice, provably correct Functional sub-system components interacting with each other in a strictly regulated way as a state machine.
  3. My daughter wants me to help her with a little project to make a loom. I don’t think it will be as elaborate as this.
  4. For years I refused to admit that I knew how to program in BASIC.
  5. This is all abstract and mathematical. And there’s a reason why it has not been adopted by working software developers. Even if I understood this theory, how can I make this information actionable?
  6. This drove a lot of philosophy of mathematics in the middle of the 20th century onward. This is still fairly abstract, but it is foundational. It provides a basis for reasoning about code, because it has mathematical rigor. This allows us to mathematically prove code is correct.
  7. Idempotent is mathy jargon for simple stuff like adding zero, or multiplying by one. It’s virtually impossible to consider all the contingencies of bad timing, communications interruption, and Murphy’s Law when you update data on all the database nodes. Thus you make update functions idempotent.