Damm algorithm: Difference between revisions

Add APL
(Add 8086 assembly)
(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}}==
2,121

edits