Skip to content

Instantly share code, notes, and snippets.

View faeliaso's full-sized avatar
💙
MERAKI

Elias de Oliveira faeliaso

💙
MERAKI
View GitHub Profile
function wrapValue(n) {
var localVariable = n;
return function() { return localVariable; };
}
var wrap1 = wrapValue(1);
var wrap2 = wrapValue(2);
console.log(wrap1());
// 1
console.log(wrap2());
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// 10
@faeliaso
faeliaso / fun_001_eloquent.js
Created January 30, 2016 17:10
Funções de ordem superior
function greaterThan(n) {
return function(m) { return m > n; };
}
var greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// true
@faeliaso
faeliaso / fun_002_eloquent.js
Created January 30, 2016 17:13
Funções de ordem superior
function greaterThan(n) {
return function(m) { return m > n; };
}
var greaterThan10 = greaterThan(10)(20);
console.log(greaterThan10);
// true
@faeliaso
faeliaso / reduce_001.js
Created January 30, 2016 20:10
Resumindo com reduce
var arr = [10,38,4,8,6,60,3];
console.log(arr.reduce(function(min, cur) {
if(cur < min ) return cur;
else return min
}));
// 3
@faeliaso
faeliaso / BugsManipulacaoErros.txt
Last active January 31, 2016 03:15
JavaScript Eloquente - 2ed
Programas são pensamentos "cristalizados". Algumas vezes, esses pensamentos são confusos e
erros podem ser inseridos quando convertemos pensamentos em código, resultando em um programa com falhas.
var dayName = function() {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return function(number) {
return names[number];
};
}();
console.log(dayName(3));
// → Wednesday
(function() {
function square(x) { return x * x; }
var hundred = 100;
console.log(square(hundred));
})();
// 10000
var weekDay = function() {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return {
name: function(number) { return names[number]; },
number: function(name) { return names.indexOf(name); }
};
}();
console.log(weekDay.name(weekDay.number("Sunday")));
(function(exports) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
exports.name = function(number) {
return names[number];
};
exports.number = function(name) {
return names.indexOf(name);
};