Skip to content

Instantly share code, notes, and snippets.

@moreirayokoyama
Created March 8, 2012 18:42
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save moreirayokoyama/2002607 to your computer and use it in GitHub Desktop.
Mod 10 (declarative fashion)
function mod10(numbers) {
var multipliers = [2, 1];
var multiplicands = numbers.reverse();
var products = mapProducts(multiplicands, multipliers);
var mod = products.map(
function (number) {
return number.toString().split('').map(
function (str) {
return parseInt(str);
}).sum();
}).sum() % 10;
if (mod >= 10) return 0;
return 10 - mod;
}
@juanplopes
Copy link

Anh?

@moreirayokoyama
Copy link
Author

huhuahuahuahuahuahua... não esquenta... usei o gist pra compartilhar um código baseado em uma conversa que tava tendo com uns amigos.

@moreirayokoyama
Copy link
Author

A idéia foi fazer uma comparação dessa implementação com esta aqui:
http://www.cjdinfo.com.br/solucao-javascript-calculo-digito-modulo-10

E falar das diferenças entre codificação imperativa e declarativa.

@moreirayokoyama
Copy link
Author

Aliás, Juan... estou fazendo o curso de Algoritmos online de Stanford... https://www.coursera.org/algo/auth/welcome
O curso inicia oficialmente dia 12, mas o conteúdo já tá disponível.
Seria legal ver uma implementação sua do módulo 10... assim, não pra ficar comparando, mas pra trocar idéias. Afinal, como a citação que o professor de Stanford usa:
"Perhaps the most important principle for the good algorithm designer is to refuse to be content."

@juanplopes
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment