Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
29
Task/SEDOLs/Sidef/sedols.sidef
Normal file
29
Task/SEDOLs/Sidef/sedols.sidef
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
func sedol(s) {
|
||||
|
||||
die 'No vowels allowed' if (s ~~ /[AEIOU]/);
|
||||
die 'Invalid format' if (s !~ /^[0-9B-DF-HJ-NP-TV-Z]{6}$/);
|
||||
|
||||
const base36 = ((@(0..9) + @('A'..'Z')) ~Z @(0..35) -> flatten.to_h);
|
||||
const weights = [1, 3, 1, 7, 3, 9];
|
||||
|
||||
var vs = [base36{ s.chars... }];
|
||||
var checksum = (vs ~Z* weights -> sum);
|
||||
var check_digit = ((10 - checksum%10) % 10);
|
||||
return (s + check_digit);
|
||||
}
|
||||
|
||||
%w(
|
||||
710889
|
||||
B0YBKJ
|
||||
406566
|
||||
B0YBLH
|
||||
228276
|
||||
B0YBKL
|
||||
557910
|
||||
B0YBKR
|
||||
585284
|
||||
B0YBKT
|
||||
B00030
|
||||
).each { |s|
|
||||
say sedol(s);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue