aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2021-01-09 07:59:21 -0500
committerchirvasitua <stuart-little@users.noreply.github.com>2021-01-09 07:59:21 -0500
commit1c19253d509fc7144b2ac8acc2b35211878309cc (patch)
tree897c1f74c92ff5c65830fa345a2780d2fd1d05d4
parent5f7d75d65c793739c0669e7fea81c505667387b3 (diff)
downloadperlweeklychallenge-club-1c19253d509fc7144b2ac8acc2b35211878309cc.tar.gz
perlweeklychallenge-club-1c19253d509fc7144b2ac8acc2b35211878309cc.tar.bz2
perlweeklychallenge-club-1c19253d509fc7144b2ac8acc2b35211878309cc.zip
1st commit on 063_haskell
-rwxr-xr-xchallenge-063/stuart-little/haskell/ch-1.hs18
-rwxr-xr-xchallenge-063/stuart-little/haskell/ch-2.hs13
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-063/stuart-little/haskell/ch-1.hs b/challenge-063/stuart-little/haskell/ch-1.hs
new file mode 100755
index 0000000000..fed2af1fd5
--- /dev/null
+++ b/challenge-063/stuart-little/haskell/ch-1.hs
@@ -0,0 +1,18 @@
+#!/usr/bin/env runghc
+
+{-
+run <script> <quoted_string quoted_regex (no slashes)>
+
+very basic: doesn't know about case-insensitivity
+-}
+
+import System.Environment (getArgs,)
+import Text.Regex.PCRE ((=~),)
+import Data.List.Extra (lastDef,)
+
+last_word :: String -> String -> String
+last_word str rx = lastDef "NO MATCH" $ filter (\w -> w =~ rx::Bool) $ words str
+
+main = do
+ (str:rx:_) <- getArgs
+ putStrLn $ last_word str rx
diff --git a/challenge-063/stuart-little/haskell/ch-2.hs b/challenge-063/stuart-little/haskell/ch-2.hs
new file mode 100755
index 0000000000..d0c57c97d9
--- /dev/null
+++ b/challenge-063/stuart-little/haskell/ch-2.hs
@@ -0,0 +1,13 @@
+#!/usr/bin/env runghc
+
+-- run <script> <x-y_string>
+
+import System.Environment (getArgs,)
+
+rot n xs = right ++ left where
+ (left,right) = splitAt (mod n $ length xs) xs
+
+main = do
+ args <- getArgs
+ let wrd = args !! 0
+ print $ head $ dropWhile (\n -> wrd /= rot (div (n*(n+1)) 2) wrd) [1..]