aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-021/stuart-little/haskell/ch-1.hs14
-rwxr-xr-xchallenge-021/stuart-little/haskell/ch-2.hs16
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)