Skip to content

Instantly share code, notes, and snippets.

@FerreiraRaphael
Last active October 19, 2017 01:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FerreiraRaphael/541090faceef655e9d949f5ce926f855 to your computer and use it in GitHub Desktop.
Save FerreiraRaphael/541090faceef655e9d949f5ce926f855 to your computer and use it in GitHub Desktop.
Exemplos Seminário TACS
//Baixe este arquivo em https://gist.github.com/FerreiraRaphael/541090faceef655e9d949f5ce926f855
//Execute:
//node <nome-do-arquivo>.js
let resultadoEsperado, resultado;
//Composição funcional
const usuarios = [
{
id: 1,
nome: "Raphael"
},
{
id: 2,
nome: "Rony"
},
{
id: 1,
nome: "Gabriel"
},
];
//Exemplo Map
//Resultado esperado é só nomes dos Usuários
function retornarSoNomes(usuario) {
return usuario.nome;
}
resultadoEsperado = ["Raphael", "Rony", "Gabriel"];
resultado = usuarios.map(retornarSoNomes);
console.log(`Resultado Map: ${resultado}`);
console.log(`Resultado Map Esperado: ${resultadoEsperado}`);
//Exemplo Filter
//Resultado esperado é o id Usuário que tem nome Raphael
function retornarPeloNome(nome) {
return usuario => usuario.nome === nome;
}
resultadoEsperado = 1;
resultado = usuarios.filter(retornarPeloNome("Raphael"))[0].id;
console.log(`Resultado Filter: ${resultado === resultadoEsperado}`);
//Baixe este arquivo em https://gist.github.com/FerreiraRaphael/541090faceef655e9d949f5ce926f855
//Execute:
//node <nome-do-arquivo>.js
let resultadoEsperado, resultado;
//Função Pura
function somarArray(arrayDeNumeros) {
return arrayDeNumeros.reduce((resultado, proximo) => resultado + proximo, 0);
}
//Resultado esperado é 21
resultadoEsperado = 21
resultado = somarArray([1, 2, 3, 4, 5, 6]);
console.log(`Resultado Função Pura: ${resultadoEsperado === resultado}`);
//Baixe este arquivo em https://gist.github.com/FerreiraRaphael/541090faceef655e9d949f5ce926f855
//Execute:
//node <nome-do-arquivo>.js
let resultadoEsperado, resultado;
//Função Não Pura
//Fazer uma requisição https get na api publica newton
const https = require("https");
function somarExpressao() {
const url = "https://newton.now.sh/simplify/2^2+2(2)";
//O resultado esperado da expressão 2^2+2(2) é 8
https.get(url, res => {
res.setEncoding("utf8");
let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
body = JSON.parse(body);
resultado = Number(body.result);
console.log('Resultado da Api:');
Object.keys(body).forEach((r) => console.log(`\t${r}: ${body[r]}`));
console.log(`Resultado Função Não Pura: ${8 === resultado}`);
});
}).on('error', (e) => {
console.error(`Resultado Função Não Pura Error: ${e}`);
});
}
somarExpressao();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment