Damm algorithm: Difference between revisions
Add APL
Not a robot (talk | contribs) (Add 8086 assembly) |
Not a robot (talk | contribs) (Add APL) |
||
Line 273:
check digit of 5727 is invalid
check digit of 112946 is valid</pre>
=={{header|APL}}==
{{works with|Dyalog APL}}
This is a function that takes a vector of digits and returns a boolean.
<lang apl> damm←{⎕IO←0
tbl←⍉⍪0 3 1 7 5 9 8 6 4 2
tbl⍪← 7 0 9 2 1 5 4 8 6 3
tbl⍪← 4 2 0 6 8 7 1 3 5 9
tbl⍪← 1 7 5 0 9 8 3 7 2 6
tbl⍪← 6 1 2 3 0 4 5 9 7 8
tbl⍪← 3 6 7 4 2 0 9 5 8 1
tbl⍪← 5 8 6 9 7 2 0 1 3 4
tbl⍪← 8 9 4 5 3 6 2 0 1 7
tbl⍪← 9 4 3 8 6 1 7 2 0 5
tbl⍪← 2 5 8 1 4 3 6 7 9 0
0={tbl[⍵;⍺]}/⌽0,⍵
}</lang>
{{out}}
<pre> damm 5 7 2 4
1
damm 5 7 2 5
0
damm 1 1 2 9 4 6
1
damm 1 1 2 9 4 9
0</pre>
=={{header|AutoHotkey}}==
|