CUSIP: Difference between revisions
Content added Content deleted
(Realize in F#) |
(Added Quackery.) |
||
Line 3,270: | Line 3,270: | ||
'68389X106' -> False |
'68389X106' -> False |
||
'68389X105' -> True</pre> |
'68389X105' -> True</pre> |
||
=={{header|Quackery}}== |
|||
<lang Quackery> [ -1 split 0 peek char 0 - |
|||
swap 0 swap |
|||
witheach |
|||
[ [ dup char 0 char 9 1+ within iff |
|||
[ char 0 - ] done |
|||
dup char A char Z 1+ within iff |
|||
[ char A - 10 + ] done |
|||
dup char * = iff |
|||
[ drop 36 ] done |
|||
dup char @ = iff |
|||
[ drop 37 ] done |
|||
dup char # = iff |
|||
[ drop 38 ] done |
|||
$ "Unexpected character '" swap |
|||
join $ "' in CUSIP." join fail ] |
|||
i^ 1 & if [ 2 * ] |
|||
10 /mod + + ] |
|||
10 mod 10 swap - 10 mod = ] is cusip ( $ --> b ) |
|||
[ dup echo$ cusip iff |
|||
[ say " is correct." ] |
|||
else [ say " is incorrect." ] |
|||
cr ] is task ( $ --> ) |
|||
$ "037833100 17275R102 38259P508 594918104 68389X106 68389X105" |
|||
nest$ witheach task</lang> |
|||
{{out}} |
|||
<pre>037833100 is correct. |
|||
17275R102 is correct. |
|||
38259P508 is correct. |
|||
594918104 is correct. |
|||
68389X106 is incorrect. |
|||
68389X105 is correct. |
|||
</pre> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |