diff options
| -rwxr-xr-x | challenge-021/stuart-little/haskell/ch-1.hs | 14 | ||||
| -rwxr-xr-x | challenge-021/stuart-little/haskell/ch-2.hs | 16 |
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-021/stuart-little/haskell/ch-1.hs b/challenge-021/stuart-little/haskell/ch-1.hs new file mode 100755 index 0000000000..4ac1f71c61 --- /dev/null +++ b/challenge-021/stuart-little/haskell/ch-1.hs @@ -0,0 +1,14 @@ +#!/usr/bin/env runghc + +-- run <script> <nr of digits you want to see> + +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE ScopedTypeVariables #-} + +import System.Environment (getArgs,) +import Numeric.Rounded (RoundingMode( TowardZero ), Rounded,reifyPrecision,) +import Data.Proxy (Proxy,) + +main = do + nrdig <- getArgs >>= return.(read::String->Int).head + putStrLn $ reifyPrecision (4*nrdig) (\(_ :: Proxy p) -> take (nrdig+1) $ show (exp 1 :: Rounded TowardZero p)) diff --git a/challenge-021/stuart-little/haskell/ch-2.hs b/challenge-021/stuart-little/haskell/ch-2.hs new file mode 100755 index 0000000000..e7cb673584 --- /dev/null +++ b/challenge-021/stuart-little/haskell/ch-2.hs @@ -0,0 +1,16 @@ +#!/usr/bin/env runghc + +-- run <script> <URI> + +import Data.Char (toLower,) +import Data.List.Split (splitOn,) +import Data.Maybe (fromJust,) +import Network.URI (normalizeCase,normalizeEscape,normalizePathSegments,unEscapeString,parseURI,uriAuthority,uriRegName,) +import System.Environment (getArgs,) + +main = do + uri <- getArgs >>= return.head + let woAuth = unEscapeString $ normalizePathSegments $ normalizeEscape $ normalizeCase uri + auth = uriRegName $ fromJust $ uriAuthority $ fromJust $ parseURI woAuth + (l:r:_) = splitOn auth woAuth + putStrLn (l ++ (map toLower auth) ++ r) |
