Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
46
Task/ISBN13-check-digit/Refal/isbn13-check-digit.refal
Normal file
46
Task/ISBN13-check-digit/Refal/isbn13-check-digit.refal
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
$ENTRY Go {
|
||||
= <Test '978-0596528126'>
|
||||
<Test '978-0596528120'>
|
||||
<Test '978-1788399081'>
|
||||
<Test '978-1788399083'>
|
||||
};
|
||||
|
||||
Test {
|
||||
e.X = <Prout e.X ': ' <ISBN e.X>>;
|
||||
};
|
||||
|
||||
ISBN {
|
||||
e.X, <Remove '-' e.X>: e.DS,
|
||||
<CheckDigits e.DS>: {
|
||||
False = Bad;
|
||||
True = <ISBN1 e.DS>;
|
||||
};
|
||||
};
|
||||
|
||||
ISBN1 {
|
||||
(13 s.Sum), <Mod s.Sum 10>: 0 = Good;
|
||||
(13 s.Sum) e.X = Bad;
|
||||
(s.N s.Sum) = Bad;
|
||||
|
||||
(s.N s.Sum) s.D e.X,
|
||||
<+ s.N 1>: s.N1,
|
||||
<Numb s.D>: s.V,
|
||||
<Mod s.N 2>: {
|
||||
0 = <ISBN1 (s.N1 <+ s.Sum s.V>) e.X>;
|
||||
1 = <ISBN1 (s.N1 <+ s.Sum <* 3 s.V>>) e.X>;
|
||||
};
|
||||
|
||||
e.X = <ISBN1 (0 0) e.X>;
|
||||
};
|
||||
|
||||
Remove {
|
||||
s.1 = ;
|
||||
s.1 s.1 e.X = <Remove s.1 e.X>;
|
||||
s.1 s.2 e.X = s.2 <Remove s.1 e.X>;
|
||||
};
|
||||
|
||||
CheckDigits {
|
||||
= True;
|
||||
s.D e.X, '0123456789': e.A s.D e.B = <CheckDigits e.X>;
|
||||
e.X = False;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue