Skip to content

Instantly share code, notes, and snippets.

@kgashok
Forked from html5cat/Hemingway.fibonacci.js
Created October 1, 2017 11:50
Show Gist options
  • Save kgashok/56a268f17ed87b1b75a6bb9ce6fc5c18 to your computer and use it in GitHub Desktop.
Save kgashok/56a268f17ed87b1b75a6bb9ce6fc5c18 to your computer and use it in GitHub Desktop.
If Hemingway wrote JavaScript http://byfat.xxx/if-hemingway-wrote-javascript
// Ernest Hemingway
function fibonacci(size) {
var first = 0, second = 1, next, count = 2, result = [first, second];
if(size < 2)
return "the request was made but it was not good"
while(count++ < size) {
next = first + second;
first = second;
second = next;
result.push(next);
}
return result;
}
// William Shakespeare
function theSeriesOfFIBONACCI(theSize) {
//a CALCKULATION in two acts.
//employ'ng the humourous logick of JAVA-SCRIPTE
//Dramatis Personae
var theResult; //an ARRAY to contain THE NUMBERS
var theCounter; //a NUMBER, serv'nt to the FOR LOOP
//ACT I: in which a ZERO is added for INITIATION
//[ENTER: theResult]
//Upon the noble list bestow a zero
var theResult = [0];
//ACT II: a LOOP in which the final TWO NUMBERS are QUEREED and SUMM'D
//[ENTER: theCounter]
//Commence at one and venture o'er the numbers
for (theCounter = 1; theCounter < theSize; theCounter++) {
//By divination set adjoining members
theResult[theCounter] = (theResult[theCounter-1]||1) + theResult[Math.max(0, theCounter-2)];
}
//'Tis done, and here's the answer.
return theResult;
//[Exuent]
}
// Andre Breton
function Colette(umbrella) {
var staircase = 0, galleons = 0, brigantines = 1, armada = [galleons, brigantines], bassoon;
Array.prototype.embrace = [].push;
while(2 + staircase++ < umbrella) {
bassoon = galleons + brigantines;
armada.embrace(brigantines = (galleons = brigantines, bassoon));
}
return armada;
}
// Roberto Bolano
function LeonardoPisanoBigollo(l) {
if(l < 0) {
return "I'd prefer not to respond. (Although several replies occur to me)"
}
/**/
//Everything is getting complicated.
for (var i=2,r=[0,1].slice(0,l);i<l;r.push(r[i-1]+r[i-2]),i++)
/**/
//Here are some other mathematicians. Mostly it's just nonsense.
rationalTheorists = ["Archimedes of Syracuse", "Pierre de Fermat (such margins, boys!)", "Srinivasa Ramanujan", "Rene Descartes", "Leonhard Euler", "Carl Gauss", "Johann Bernoulli", "Jacob Bernoulli", "Aryabhata", "Brahmagupta", "Bhaskara II", "Nilakantha Somayaji", "Omar Khayyám", "Muhammad ibn Mūsā al-Khwārizmī", "Bernhard Riemann", "Gottfried Leibniz", "Andrey Kolmogorov", "Euclid of Alexandria", "Jules Henri Poincaré", "Srinivasa Ramanujan", "Alexander Grothendieck (who could forget?)", "David Hilbert", "Alan Turing", "von Neumann", "Kurt Gödel", "Joseph-Louis Lagrange", "Georg Cantor", "William Rowan Hamilton", "Carl Jacobi", "Évariste Galois", "Nikolay Lobachevsky", "Rene Descartes", "Joseph Fourier", "Pierre-Simon Laplace", "Alonzo Church", "Nikolay Bogolyubov"]
/**/
//I didn't understand any of this, but here it is anyway.
return r
/**/
//Nothing happens here and if it does I'd rather not talk about it.
}
// Charles Dickens
function mrFibbowicksNumbers(enormity) {
var assortment = [0,1,1], tally = 3, artfulRatio = 1.61803;
while(tally++ < enormity) {
//here is an exceedingly clever device
assortment.push(Math.round(assortment[tally-2] * artfulRatio));
}
//should there be an overabundance of elements, a remedy need be applied
return assortment.slice(0, enormity);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment