8 lines
308 B
Text
8 lines
308 B
Text
fcn cusipCheckDigit(cusip){
|
|
var [const] vs=[0..9].chain(["A".."Z"],T("*","@","#")).pump(String);
|
|
try{
|
|
sum:=Walker.cycle(1,2).zipWith(fcn(n,c){ v:=vs.index(c)*n; v/10 + v%10 },
|
|
cusip[0,8]).reduce('+);
|
|
((10 - sum%10)%10 == cusip[8].toInt()) and cusip.len()==9
|
|
}catch{ False }
|
|
}
|