1903 - 1995
1912 - 1954
Any real-world computation can be translated into an equivalent computation involving a
Turing machine or lambda calculus
In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing complete or computationally universal if it can be used to simulate any Turing machine.
A system in which a program can be written that will solve any computation problem
Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
(n => {
(function fizzbuzz(i) {
const [f, b] = ['Fizz', 'Buzz'];
const d3 = i % 3 ? 0 : f;
const d5 = i % 5 ? 0 : b;
const d15 = d3 && d5 ? f + b : 0;
console.log(d15 || d3 || d5 || i);
if (i !== n) fizzbuzz(++i);
})(1);
})(100);
Back during the time of Church and Turing, "Computer" meant the person who manually computes programs (not the machines).
A higher-order function that takes a single argument, a non-recursive function, and returns a version of that function which is recursive.
λf.(λx.f (λy. x x y)) (λx.f (λy. x x y))