ISBN13 check digit: Difference between revisions

no edit summary
m (→‎{{header|F#}}: Corrected header as suggested on the Count examples/Full list/Tier 4 talk page)
No edit summary
Line 2,846:
True
False</pre>
 
=={{header|Vlang}}==
{{trans|go}}
<lang vlang>fn check_isbn13(isbn13 string) bool {
// remove any hyphens or spaces
isbn := isbn13.replace('-','').replace(' ','')
// check length == 13
le := isbn.len
if le != 13 {
return false
}
// check only contains digits and calculate weighted sum
mut sum := 0
for i, c in isbn.split('') {
if c.int() < '0'.int() || c.int() > '9'.int() {
return false
}
if i%2 == 0 {
sum += c.int() - '0'.int()
} else {
sum += 3 * (c.int() - '0'.int())
}
}
return sum%10 == 0
}
fn main() {
isbns := ["978-1734314502", "978-1734314509", "978-1788399081", "978-1788399083"]
for isbn in isbns {
mut res := "bad"
if check_isbn13(isbn) {
res = "good"
}
println("$isbn: $res")
}
}</lang>
 
{{out}}
<pre>
978-1734314502: good
978-1734314509: bad
978-1788399081: good
978-1788399083: bad
</pre>
 
=={{header|Wren}}==
338

edits