diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-01-01 22:53:26 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-01 22:53:26 +0000 |
| commit | a7e31e4f93f2bcfccd87b7489b7dc7dae616ee6d (patch) | |
| tree | a1d4541b783df12393b122c91934552e6be17c34 | |
| parent | 4eb22735efdfd22fc0a689c64a1ff5f98c72ea02 (diff) | |
| parent | ed957e5b7f794df2365562c6e504adbba2a5220a (diff) | |
| download | perlweeklychallenge-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/README | 2 | ||||
| -rwxr-xr-x | challenge-079/stuart-little/haskell/ch-1.hs | 13 | ||||
| -rwxr-xr-x | challenge-079/stuart-little/haskell/ch-2.hs | 22 |
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 |
