Skip to content

Instantly share code, notes, and snippets.

View seysdev's full-sized avatar
🎯
Working

sebastian yabiku seysdev

🎯
Working
View GitHub Profile
@seysdev
seysdev / curry.html
Created April 29, 2019 04:36
curry - functional paradigm
<button class="one">18</button>
<button class="two">22</button>
<div id="changes">
</div>
@seysdev
seysdev / recursion.js
Created April 29, 2019 03:33
recursion - functional paradigm
function factorial( n ) {
if ( n === 1 ) {
return 1;
}
return n * factorial( n - 1 );
}
factorial(6) // 720
@seysdev
seysdev / composition-fn.js
Last active April 29, 2019 03:11
Composition of functions - functional paradigm
// example 1 // simple composition
function concatName(firstname, lastname) {
return `${firstname} ${lastname}`;
}
function injetDom(element) {
document.querySelector('body').innerHTML = element;
}
injectDom(concatName('sebastian', 'yabiku'))
@seysdev
seysdev / immutability.js
Last active April 29, 2019 01:07
immutability - functional paradigm
// inmmutability
const resultAccounts = ['12367', '12368', '22367', '22368', '32367', '32368'];
function AccountsByNumberInit(account, number) {
return account.substring(0,1) === number
}
const accountsStartOne = resultAccounts.filter(account => AccountsByNumberInit(account, '1'));
const accountsStartTwo = resultAccounts.filter(account => AccountsByNumberInit(account, '2'));
const accountsStartThree = resultAccounts.filter(account => AccountsByNumberInit(account, '3'));
@seysdev
seysdev / higher-order.js
Created April 28, 2019 03:34
Higher order functions  
let numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// filter
let filterNumber = numbers.filter((number) => number > 5) // 6, 7, 8, 9, 10
// reduce
let reduceNumber = numbers.reduce((previousNumber, currentNumber) => previousNumber + currentNumber); // 10
// reduce initial
let reduceInitial = numbers.reduce((previousNumber, currentNumber) => previousNumber + currentNumber, 10); // 20
@seysdev
seysdev / first-class.js
Created April 28, 2019 02:46
First class functions
// assign to variables
const f = (m) => console.log(m)
f('Test')
// assing in objet
const obj = {
f(m) {
console.log(m)
}
}
@seysdev
seysdev / pure-fn.js
Created April 28, 2019 02:36
pure function - functional paradigm
// function pure
function add(x) {
return x + 2;
}
// function not pure
let y = 2;
function add2(x) {
return x + y;
}
@seysdev
seysdev / imp-fun.js
Created April 28, 2019 02:17
imperative vs functional
let animals = [
{
name: 'Rin tin tin',
species: 'dog'
},
{
name: 'gardfield',
species: 'cat'
},
{
@seysdev
seysdev / oop-animal.js
Last active April 27, 2019 22:45
oop paradigm
// prototype heritage
function Animal(type, species){
this.type = type;
this.species = species;
}
Animal.prototype.say = function() {
return `The ${this.type} is a ${this.species} and say ${say}`;
}
@seysdev
seysdev / imperative-calc.js
Created April 27, 2019 22:11
imperative paradigm  
let numbers = [12, 32, 45, 13, 19];
let add = 0;
let average = 0;
for (let i= 0; i < marks.length; i++) {
add += marks[i];
}
average = add / marks.length;