Sha256: 0ceafdde786b3d85e2bd53f3484cc2ab802f2b8f415f03a1408dd072aa1b2d00
Contents?: true
Size: 391 Bytes
Versions: 93
Compression:
Stored size: 391 Bytes
Contents
module IsbnVerifier (isbn) where isbn :: String -> Bool isbn "" = False isbn xs = length nums == 10 && g nums `mod` 11 == 0 && l <= 1 where nums = let nxs = f xs in if last xs == 'X' then nxs++[(1,10)] else nxs f :: String -> [(Int, Int)] f = zip [10,9..1] . map (\x -> read [x]) . filter (`elem` ['0'..'9']) g = sum . map (uncurry (*)) l = length $ filter (=='X') xs
Version data entries
93 entries across 93 versions & 1 rubygems