aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-083/stuart-little/README2
-rwxr-xr-xchallenge-083/stuart-little/haskell/ch-1.hs9
-rwxr-xr-xchallenge-083/stuart-little/haskell/ch-2.hs14
3 files changed, 24 insertions, 1 deletions
diff --git a/challenge-083/stuart-little/README b/challenge-083/stuart-little/README
index 76119cbbb8..78439907de 100644
--- a/challenge-083/stuart-little/README
+++ b/challenge-083/stuart-little/README
@@ -1 +1 @@
-Solutions by Stuart Little.
+Solutions by Stuart Little
diff --git a/challenge-083/stuart-little/haskell/ch-1.hs b/challenge-083/stuart-little/haskell/ch-1.hs
new file mode 100755
index 0000000000..343d334492
--- /dev/null
+++ b/challenge-083/stuart-little/haskell/ch-1.hs
@@ -0,0 +1,9 @@
+#!/usr/bin/env runghc
+
+-- run <script> <quoted string>
+
+import System.Environment (getArgs,)
+
+main = do
+ ln <- getArgs >>= return.head >>= return.sum.(map length).init.tail.words
+ print ln
diff --git a/challenge-083/stuart-little/haskell/ch-2.hs b/challenge-083/stuart-little/haskell/ch-2.hs
new file mode 100755
index 0000000000..7f7413921b
--- /dev/null
+++ b/challenge-083/stuart-little/haskell/ch-2.hs
@@ -0,0 +1,14 @@
+#!/usr/bin/env runghc
+
+-- run <script> <space-separated numbers>
+
+import Data.List (subsequences,)
+import Data.List.Extra (minimumOn,groupSortOn,)
+import System.Environment (getArgs,)
+
+main = do
+ nrs <- getArgs >>= return.(map (read::String->Int))
+ let reslst = minimumOn length $ last $ groupSortOn sum $ filter ((<= (sum nrs)).(2*).sum) $ subsequences nrs
+ putStrLn "Change the sign(s) of:"
+ print reslst
+ putStrLn $ "Number of elements: " ++ (show $ length reslst)