Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link

@juanplopes juanplopes commented Mar 8, 2012

Anh?

@moreirayokoyama

This comment has been minimized.

Copy link
Owner Author

@moreirayokoyama moreirayokoyama commented Mar 8, 2012

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

@moreirayokoyama

This comment has been minimized.

Copy link
Owner Author

@moreirayokoyama moreirayokoyama commented Mar 8, 2012

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

This comment has been minimized.

Copy link
Owner Author

@moreirayokoyama moreirayokoyama commented Mar 9, 2012

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

This comment has been minimized.

Copy link

@juanplopes juanplopes commented Mar 9, 2012

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