ISBN13 check digit: Difference between revisions

no edit summary
(Add Modula-2)
No edit summary
Line 1,339:
978-1788399083: bad
</pre>
 
=={{header|F#}}==
<lang fsharp>// ISBN13 Check Digit
open System
 
let parseInput (input: string) =
Seq.map(fun c -> c |> string) input |> Seq.toList |> List.map(fun x -> Int32.Parse x)
 
[<EntryPoint>]
let main argv =
let isbnnum = parseInput (String.filter (fun x -> x <> '-') argv.[0])
// Multiply every other digit by 3
let everyOther = List.mapi (fun i x -> if i % 2 = 0 then x * 3 else x) isbnnum
// Sum the *3 list with the original list
let sum = List.sum everyOther + List.sum isbnnum
// If the remainder of sum / 10 is 0 then it's a valid ISBN13
if sum % 10 = 0 then
printfn "%s Valid ISBN13" argv.[0]
else
printfn "%s Invalid ISBN13" argv.[0]
0</lang>
 
{{out}}
<pre>978-1734314502 Valid ISBN13
978-1734314509 Inalid ISBN13
978-1788399081 Valid ISBN13
978-1788399083Inalid ISBN13</pre>
 
=={{header|Fōrmulæ}}==
Anonymous user