Damm algorithm: Difference between revisions

Added Arturo implementation
(Add PL/M)
(Added Arturo implementation)
Line 413:
112946:Pass
112949:Fail</pre>
 
=={{header|Arturo}}==
 
<lang rebol>table: [
[0 3 1 7 5 9 8 6 4 2]
[7 0 9 2 1 5 4 8 6 3]
[4 2 0 6 8 7 1 3 5 9]
[1 7 5 0 9 8 3 4 2 6]
[6 1 2 3 0 4 5 9 7 8]
[3 6 7 4 2 0 9 5 8 1]
[5 8 6 9 7 2 0 1 3 4]
[8 9 4 5 3 6 2 0 1 7]
[9 4 3 8 6 1 7 2 0 5]
[2 5 8 1 4 3 6 7 9 0]
]
 
digits: $ => [map split & => [to :integer]]
 
damm?: $ => [zero? fold digits & .seed: 0 => [get get table]]
 
test: function [str][
result: switch damm? str -> "valid"
-> "invalid"
print [str "is" result]
]
 
loop ["5724" "5727" "112946" "112949"] => test</lang>
 
{{out}}
 
<pre>5724 is valid
5727 is invalid
112946 is valid
112949 is invalid</pre>
 
=={{header|AutoHotkey}}==
1,532

edits