Uladzimir Abramchuk
Uladzimir Abramchuk
-1cos(-1) -> 0.540302...cos(cos(-1)) -> 0.857553......cos(cos(...cos(-1)...)) -> 0.739085...
x = f(x) = f(f(x)) = f(f(f(x))) = ...
f(x) = cos(x) -> fixpoint = 0.739085...f(x) = x2 - 3x + 4 -> fixpoint = 2f(x) = x2 -> fixpoint = 0, fixpoint = 1f(x) = x + 1 -> no fixpoint
Tiger got to hunt,
Bird got to fly;
Lisper got to sit and wonder, (Y (Y Y))?
Tiger got to sleep,
Bird got to land;
Lisper got to tell himself he understand.
— Kurt Vonnegut, modified by Darius Bacon
function commonFactorial(n) {return n === 0 ? 1 : n * commonFactorial(n-1);}
function fact(self) {return function(n) {return n === 0 ? 1 : n * self(n-1);};}
function fact(self)(n) {return n === 0 ? 1 : n * self(n-1);}
commonFactorial is a fixed point of fact!fact(commonFactorial)(4) === commonFactorial(4);fact(commonFactorial)(10) === commonFactorial(10);fact(commonFactorial)(17) === commonFactorial(17);...//But we are trying to calculate factorial without recursion!
Y that we could pass fact to that would return the fixed point of it, i.e. commonFactorial function?Y(fact)(42)=== commonFactorial(42)=== fact(commonFactorial)(42)=== fact(Y(fact))(42)//So we do not need commonFactorial function at all!
function fix(f) {var p = function(self)(n) {return f(self(self))(n);};return p(p);}var factorial = fix(fact);factorial(6); // => 720
function logWrapper(f)(self)(n) {var result = f(self)(n);console.log('f(' + n + ') = ' + result);return result;}var logFactorial = fix(logWrapper(fact));logFactorial(3); // => 6
function commonFactorial(n, r) {return n === 0 ? r : commonFactorial(n - 1, n*r);};
function fact(self)(n, r) {return n === 0 ? r : self(n - 1, n*r);}
function fix(f)(n, r) {var a = function(n_, r_) {n = n_; r = r_;return a;};while (a && instanceof Function) { a = f(a)(n, r); }return a;}var factorial = fix(fact);
A quine is a program which prints its own listing.
(function $(){console.log('('+ $ +'());')}());
Program consists of two parts, one which call the code and one which we call the data.
| SAY | "SAY" |
| verb | noun |
| code | data |
var newLine = String.fromCharCode(10);//intronvar data = 'var newLine = String.fromCharCode(10);%3//intron%3var data = %1%0%1;%3console.log(data.replace(/%21/g, "%1").replace(/%23/g, newLine).replace(/%22/g, "%").replace("%20", data));';console.log(data.replace(/%1/g, "'").replace(/%3/g, newLine).replace(/%2/g, "%").replace("%0", data));
when graphed in two dimensions, can visually reproduce itself