RosettaCodeData/Task/SEDOLs/Cache-ObjectScript/sedols.cos

20 lines
391 B
Plaintext

Class Utils.Check [ Abstract ]
{
ClassMethod SEDOL(x As %String) As %Boolean
{
// https://en.wikipedia.org/wiki/SEDOL
IF x'?1(7N,1U5UN1N) QUIT 0
IF x'=$TRANSLATE(x,"AEIOU") QUIT 0
SET cd=$EXTRACT(x,*), x=$EXTRACT(x,1,*-1)
SET wgt="1317391", t=0
FOR i=1:1:$LENGTH(x) {
SET n=$EXTRACT(x,i)
IF n'=+n SET n=$ASCII(n)-55
SET t=t+(n*$EXTRACT(wgt,i))
}
QUIT cd=((10-(t#10))#10)
}
}