aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-01-11 00:47:11 +0000
committerGitHub <noreply@github.com>2021-01-11 00:47:11 +0000
commitbba37b96ac80b23bd9b268b92eeb237f8dcedbfa (patch)
tree370585674638dacab35f01e4ad3d9f48215cbd29
parente1c01e07a7d895b8ae34d7eb88732dfb83e59fe9 (diff)
parentd7c305cf60aa0cccc066a762cc12f27ed79f8109 (diff)
downloadperlweeklychallenge-club-bba37b96ac80b23bd9b268b92eeb237f8dcedbfa.tar.gz
perlweeklychallenge-club-bba37b96ac80b23bd9b268b92eeb237f8dcedbfa.tar.bz2
perlweeklychallenge-club-bba37b96ac80b23bd9b268b92eeb237f8dcedbfa.zip
Merge pull request #3215 from stuart-little/stuart-little_005_haskell
1st commit on 005_haskell
-rwxr-xr-xchallenge-005/stuart-little/haskell/ch-1.hs16
-rwxr-xr-xchallenge-005/stuart-little/haskell/ch-2.hs14
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-005/stuart-little/haskell/ch-1.hs b/challenge-005/stuart-little/haskell/ch-1.hs
new file mode 100755
index 0000000000..e203272a28
--- /dev/null
+++ b/challenge-005/stuart-little/haskell/ch-1.hs
@@ -0,0 +1,16 @@
+#!/usr/bin/env runghc
+
+-- run <script> <word> <path-to-dict-file>
+
+import System.Environment (getArgs,)
+import Data.List ((\\),)
+import Data.Char (toLower,)
+
+isAnagram :: String -> String -> Bool
+isAnagram wrd1 wrd2 = (null $ uc1 \\ uc2) && (null $ uc2 \\ uc1) where
+ (uc1:uc2:_) = (map.map) toLower (wrd1:[wrd2])
+
+main = do
+ (wrd:file:_) <- getArgs
+ text <- readFile file
+ mapM_ putStrLn $ filter (isAnagram wrd) $ words text
diff --git a/challenge-005/stuart-little/haskell/ch-2.hs b/challenge-005/stuart-little/haskell/ch-2.hs
new file mode 100755
index 0000000000..4085adbf2d
--- /dev/null
+++ b/challenge-005/stuart-little/haskell/ch-2.hs
@@ -0,0 +1,14 @@
+#!/usr/bin/env runghc
+
+-- run <script> <path-to-dict-file>
+
+import System.Environment (getArgs,)
+import Data.List ((\\),)
+import Data.Char (toLower,)
+import Data.List.Extra (maximumOn,groupSortOn,)
+import Data.MultiSet (fromList,)
+
+main = do
+ (file:_) <- getArgs
+ text <- readFile file
+ putStrLn $ unwords $ maximumOn length $ groupSortOn (fromList.(map toLower)) $ words text