September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -1,17 +1,35 @@
|
|||
import Numeric
|
||||
mid3 :: Int -> Either String String
|
||||
mid3 n
|
||||
| m < 100 = Left "is too small"
|
||||
| even l = Left "has an even number of digits"
|
||||
| otherwise = Right . take 3 $ drop ((l - 3) `div` 2) s
|
||||
where
|
||||
m = abs n
|
||||
s = show m
|
||||
l = length s
|
||||
|
||||
mid3 :: Integral a => a -> Either String String
|
||||
mid3 n | m < 100 = Left "is too small"
|
||||
| even l = Left "has an even number of digits"
|
||||
| otherwise = Right . take 3 $ drop ((l-3) `div` 2) s
|
||||
where m = abs n
|
||||
s = showInt m ""
|
||||
l = length s
|
||||
|
||||
showMid3 :: Integer -> String
|
||||
showMid3 :: Int -> String
|
||||
showMid3 n = show n ++ ": " ++ either id id (mid3 n)
|
||||
|
||||
main :: IO ()
|
||||
main = mapM_ (putStrLn . showMid3) [
|
||||
123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345,
|
||||
1, 2, -1, -10, 2002, -2002, 0]
|
||||
main =
|
||||
mapM_
|
||||
(putStrLn . showMid3)
|
||||
[ 123
|
||||
, 12345
|
||||
, 1234567
|
||||
, 987654321
|
||||
, 10001
|
||||
, -10001
|
||||
, -123
|
||||
, -100
|
||||
, 100
|
||||
, -12345
|
||||
, 1
|
||||
, 2
|
||||
, -1
|
||||
, -10
|
||||
, 2002
|
||||
, -2002
|
||||
, 0
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue