Luhn test of credit card numbers: Difference between revisions

Content deleted Content added
JoeStrout (talk | contribs)
added MiniScript example
Langurmonkey (talk | contribs)
added langur language example
Line 2,507:
1234567812345670 is valid
</pre>
 
=={{header|Langur}}==
following the Go language example, but in a functional style
<lang Langur>val .t = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
 
val .luhntest = f(.s) {
val .numbers = map f .c-'0', stringToCp .s
val .oddeven = len(.numbers) // 2
 
foldfrom(
f(.sum, .i, .c) if .i // 2 == .oddeven { .sum + .c } else { .sum + .t[.c+1] },
0,
series 1 to len .numbers,
.numbers,
) // 10 == 0
}
 
val .tests = h{
"49927398716": true,
"49927398717": false,
"1234567812345678": false,
"1234567812345670": true,
}
 
map(
f(.key) writeln(.key, ": ", val .pass = .luhntest(.key),
if(.pass == .tests[.key]: ""; " (LUHN TEST FAILED)") ),
keys .tests,
)</lang>
 
{{out}}
<pre>1234567812345678: false
49927398716: true
49927398717: false
1234567812345670: true</pre>
 
=={{header|Lasso}}==