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

Version Path
trackler-2.2.1.180 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.179 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.178 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.177 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.176 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.175 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.174 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.173 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.172 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.171 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.170 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.169 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.167 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.166 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.165 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.164 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.163 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.162 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.161 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs
trackler-2.2.1.160 tracks/haskell/exercises/isbn-verifier/examples/success-standard/src/IsbnVerifier.hs