Validate International Securities Identification Number: Difference between revisions

Content added Content deleted
m (→‎{{header|Haskell}}: (Removed a redundant import))
(→‎{{header|Haskell}}: Tidied character type pattern check (isinPattern))
Line 927: Line 927:


isinPattern isin =
isinPattern isin =
and
(length isin == 12) &&
all (`elem` capitals) (take 2 isin) &&
[ length isin == 12
all (((||) . (`elem` capitals)) <*> (`elem` digits)) (drop 2 $ take 11 isin) &&
, all (`elem` capitals) (take 2 isin)
elem (last isin) digits
, all (`elem` (capitals ++ digits)) ((take 9 . drop 2) isin)
, last isin `elem` digits
]


luhn x =
luhn x =