aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-01-01 22:53:26 +0000
committerGitHub <noreply@github.com>2021-01-01 22:53:26 +0000
commita7e31e4f93f2bcfccd87b7489b7dc7dae616ee6d (patch)
treea1d4541b783df12393b122c91934552e6be17c34
parent4eb22735efdfd22fc0a689c64a1ff5f98c72ea02 (diff)
parented957e5b7f794df2365562c6e504adbba2a5220a (diff)
downloadperlweeklychallenge-club-a7e31e4f93f2bcfccd87b7489b7dc7dae616ee6d.tar.gz
perlweeklychallenge-club-a7e31e4f93f2bcfccd87b7489b7dc7dae616ee6d.tar.bz2
perlweeklychallenge-club-a7e31e4f93f2bcfccd87b7489b7dc7dae616ee6d.zip
Merge pull request #3126 from stuart-little/stuart-little_079_haskell
1st commit on 079_haskell
-rw-r--r--challenge-079/stuart-little/README2
-rwxr-xr-xchallenge-079/stuart-little/haskell/ch-1.hs13
-rwxr-xr-xchallenge-079/stuart-little/haskell/ch-2.hs22
3 files changed, 36 insertions, 1 deletions
diff --git a/challenge-079/stuart-little/README b/challenge-079/stuart-little/README
index 76119cbbb8..78439907de 100644
--- a/challenge-079/stuart-little/README
+++ b/challenge-079/stuart-little/README
@@ -1 +1 @@
-Solutions by Stuart Little.
+Solutions by Stuart Little
diff --git a/challenge-079/stuart-little/haskell/ch-1.hs b/challenge-079/stuart-little/haskell/ch-1.hs
new file mode 100755
index 0000000000..bb008df3e4
--- /dev/null
+++ b/challenge-079/stuart-little/haskell/ch-1.hs
@@ -0,0 +1,13 @@
+#!/usr/bin/env runghc
+
+-- run as <script> <number>
+
+import System.Environment
+
+nrbits 0 = 0
+nrbits x = (mod x 2) + (nrbits $ (div x 2))
+
+main = do
+ args <- getArgs
+ putStrLn $ show $ sum $ map nrbits [1..(read (args !! 0)::Int)]
+
diff --git a/challenge-079/stuart-little/haskell/ch-2.hs b/challenge-079/stuart-little/haskell/ch-2.hs
new file mode 100755
index 0000000000..61647b3460
--- /dev/null
+++ b/challenge-079/stuart-little/haskell/ch-2.hs
@@ -0,0 +1,22 @@
+#!/usr/bin/env runghc
+
+-- run as <script> <space-separated array entries>
+
+import System.Environment
+
+holdWater a = sum $ filter ((<) 0) $ zipWith (-) (0:(map (\i -> minimum $ map maximum $ (\x -> [fst x,snd x]) $ splitAt i a) [1..(length a -1)])) a
+
+charTr lnr val
+ |val <= lnr = ' '
+ |otherwise = '#'
+
+histLine xs lnr = map (charTr lnr) xs
+hist xs = reverse $ map (histLine xs) [0..(maximum xs - 1)]
+
+main = do
+ args <- getArgs
+ let intargs = map (read::String->Int) args
+ putStr "\nWater quantity: "
+ putStrLn $ show $ holdWater intargs
+ putStrLn "\nHistogram:\n"
+ mapM_ putStrLn $ hist intargs