aboutsummaryrefslogtreecommitdiff
path: root/challenge-082
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2021-01-07 07:39:59 -0500
committerchirvasitua <stuart-little@users.noreply.github.com>2021-01-07 07:39:59 -0500
commit6f2f197a3f75b0b263844633e95a6e5472668df6 (patch)
treecde85245135d4e9faa377ebc7e7a628051718c49 /challenge-082
parent11282c4ea2c7da7169ad7cba0d668d709e290676 (diff)
downloadperlweeklychallenge-club-6f2f197a3f75b0b263844633e95a6e5472668df6.tar.gz
perlweeklychallenge-club-6f2f197a3f75b0b263844633e95a6e5472668df6.tar.bz2
perlweeklychallenge-club-6f2f197a3f75b0b263844633e95a6e5472668df6.zip
1st commit on 082_haskell
Diffstat (limited to 'challenge-082')
-rw-r--r--challenge-082/stuart-little/README2
-rwxr-xr-xchallenge-082/stuart-little/haskell/ch-1.hs10
-rwxr-xr-xchallenge-082/stuart-little/haskell/ch-2.hs17
3 files changed, 28 insertions, 1 deletions
diff --git a/challenge-082/stuart-little/README b/challenge-082/stuart-little/README
index 76119cbbb8..78439907de 100644
--- a/challenge-082/stuart-little/README
+++ b/challenge-082/stuart-little/README
@@ -1 +1 @@
-Solutions by Stuart Little.
+Solutions by Stuart Little
diff --git a/challenge-082/stuart-little/haskell/ch-1.hs b/challenge-082/stuart-little/haskell/ch-1.hs
new file mode 100755
index 0000000000..f2c908da90
--- /dev/null
+++ b/challenge-082/stuart-little/haskell/ch-1.hs
@@ -0,0 +1,10 @@
+#!/usr/bin/env runghc
+
+-- run <script> <two space-separated numbers>
+
+import System.Environment (getArgs,)
+
+main = do
+ args <- getArgs
+ let (n1:n2:_) = map (read::String->Int) args
+ print $ filter (\x -> (mod n1 x == 0) && (mod n2 x == 0)) $ take (min n1 n2) [1..]
diff --git a/challenge-082/stuart-little/haskell/ch-2.hs b/challenge-082/stuart-little/haskell/ch-2.hs
new file mode 100755
index 0000000000..4c4a972dc9
--- /dev/null
+++ b/challenge-082/stuart-little/haskell/ch-2.hs
@@ -0,0 +1,17 @@
+#!/usr/bin/env runghc
+
+-- run <script> <string1 string2 target_string>
+
+import System.Environment (getArgs,)
+import Data.List.Extra (notNull,)
+
+intertwine :: [a] -> [a] -> [[a]]
+intertwine xs ys
+ |null xs || null ys = [xs ++ ys]
+ |otherwise = (nextIt xs ys ) ++ (nextIt ys xs) where
+ nextIt l1 l2 = map ((head l1):) (intertwine (tail l1) l2)
+
+main = do
+ args <- getArgs
+ let (w1:w2:target:_) = args
+ putStrLn $ show $ notNull $ filter (target==) $ intertwine w1 w2