Sha256: 4857767605477664e7ee858b4d905d7203840c4ae9a8149e19f2375c6706292d
Contents?: true
Size: 498 Bytes
Versions: 104
Compression:
Stored size: 498 Bytes
Contents
(ns isbn-verifier) (defn is-in? [xs x] (some #(= x %) xs)) (defn isbn-chars [isbn] (filter #(is-in? [\0 \1 \2 \3 \4 \5 \6 \7 \8 \9 \X] %) isbn)) (defn isbn? [isbn] (let [chars (isbn-chars isbn) nums (map #(if (= \X %) 10 (Character/digit % 10)) chars)] (and (-> chars butlast (is-in? \X) not) (= 10 (count chars)) (as-> nums x (map #(* %1 %2) (range 10 0 -1) x) (reduce + x) (mod x 11) (zero? x)))))
Version data entries
104 entries across 104 versions & 1 rubygems