ISBN13 check digit: Difference between revisions

m
Line 190:
In this example, we map to multiple functions (actually 1 no-op).
<lang langur>val .isbn13checkdigit = f(var .s) {
matching(re/^[0-9]{13}$/, .s = replace(.s, RE/[\- ]/)) and
matching(re/^[0-9]{13}$/, .s) and
fold(f{+}, map([_, f .d x 3], map(f .c-'0', s2cp .s))) rem 10 == 0
}
Line 210 ⟶ 211:
In this example, we set a for loop value as it progresses.
<lang langur>val .isbn13checkdigit = f(var .s) {
.s = replace(.s, RE/[\- ]/)
var .alt = true
matching(re/^[0-9]{13}$/, .s = replace(.s, RE/[\- ]/)) and
for[=0] .d in map(f .c-'0', s2cp .s) { _for += if(.alt=not .alt: .d x 3; .d) } rem 10 == 0
}
1,003

edits