Validate International Securities Identification Number: Difference between revisions

Added Quackery.
No edit summary
(Added Quackery.)
Line 2,176:
 
# [True, False, False, False, True, True, True]</lang>
 
=={{header|Quackery}}==
 
<code>luhn</code> is defined at [[Luhn test of credit card numbers#Quackery]].
 
<lang Quackery> [ 2 split drop do
char A char z 1+ within
swap
char A char z 1+ within
and ] is 2chars ( $ --> b )
[ dup size 12 != iff
[ drop false ] done
dup 2chars not iff
[ drop false ] done
[] swap
witheach
[ 36 base put
char->n
base release
number$ join ]
$->n drop luhn ] is isin ( n --> b )
 
[ dup echo$
say " is "
isin not if
[ say "not " ]
say "valid." cr ] is task ( n --> )
 
$ "US0378331005" task
$ "US0373831005" task
$ "U50378331005" task
$ "US03378331005" task
$ "AU0000XVGZA3" task
$ "AU0000VXGZA3" task
$ "FR0000988040" task
</lang>
 
{{out}}
 
<pre>US0378331005 is valid.
US0373831005 is not valid.
U50378331005 is not valid.
US03378331005 is not valid.
AU0000XVGZA3 is valid.
AU0000VXGZA3 is valid.
FR0000988040 is valid.</pre>
 
=={{header|Racket}}==
1,462

edits