Skip to content

Instantly share code, notes, and snippets.

View wdiasvargas's full-sized avatar

William Vargas wdiasvargas

View GitHub Profile
var str = "isso é uma string";
typeof(str);//'string'
var num = 1.74;
typeof(num);//'number'
var bol = true;
typeof(bol);//'boolean'
const soma = (x, y) => x + y;
const calcular = (fn, x, y) => fn(x, y);
calcular(sum, 1, 2);
npm install --save-dev babel-cli babel-preset-es2017 && echo '{ "presets": ["es2017"] }' > .babelrc && echo 'function a(b,) { console.log("hi"); }; a()' > index.js
//run ./node_modules/.bin/babel-node index.js
//params $babel$ $script.js$ --presets es2017
/**
* Created in 21/06/2017.
* Author: William Dias Vargas
* Github: @wdiasvargas
*/
'use strict';
import yCombFact from './y-combinator-factorial'
export default (number) => ((fn) => fn(fn, number))((f, n) => (n <= 1)? 1: n * f(f, (n - 1)))
console.info(yCombFact(5))
/**
* Created in 21/06/2017.
* Author: William Dias Vargas
* Github: @wdiasvargas
*/
'use strict';
//http://kestas.kuliukas.com/YCombinatorExplained/
() => (f) => f(f)((f) =>((x) => (f(f))(x))))
/**
* Created in 20/06/2017.
* Author: William Dias Vargas
* Github: @wdiasvargas
*/
"use strict";
export default (fn, cache = {}) => (x) => (x in cache) ? cache[x] : cache[x] = fn(x);
/**
* Created in 20/06/2017.
* Author: William Dias Vargas
* Github: @wdiasvargas
*/
"use strict";
export default (fn, cache = {}) => (x) => (x in cache) ? cache[x] : cache[x] = fn(x);
@wdiasvargas
wdiasvargas / derivative.es6
Created June 21, 2017 05:03
derivative_memoizade
/**
* Created in 20/06/2017.
* Author: William Dias Vargas
* Github: @wdiasvargas
*/
"use strict";
import memoization from './memoization';
import derivative from './derivative';
import f from './fn';
import x from './x';
@wdiasvargas
wdiasvargas / fibonacci.js
Last active June 20, 2017 22:33
fibonacci_memoization_oneliner
/**
* Created by William on 20/06/2017.
*/
import fibonacci from './fibonacci';
export default (n = 0) => (m = {}) => (m[n]) ? (m[n]) : (n <= 1) ? (n) :(m[n]) = ((fibonacci(n-1)(m)) + (fibonacci(n-2)(m)));
console.info(fibonacci(7)())
// function fibonacci(num, memo) {
// memo = memo || {};
//
// if (memo[num]) return memo[num];
function isPrime(n) {
if (n == 2 || n == 3 || n == 5 || n == 7) {
return true;
} else if ((n < 2) || (n % 2 == 0)) {
return false;
} else {
for (var i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i == 0)
return false;
}