diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-01-11 00:47:11 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-11 00:47:11 +0000 |
| commit | bba37b96ac80b23bd9b268b92eeb237f8dcedbfa (patch) | |
| tree | 370585674638dacab35f01e4ad3d9f48215cbd29 | |
| parent | e1c01e07a7d895b8ae34d7eb88732dfb83e59fe9 (diff) | |
| parent | d7c305cf60aa0cccc066a762cc12f27ed79f8109 (diff) | |
| download | perlweeklychallenge-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-x | challenge-005/stuart-little/haskell/ch-1.hs | 16 | ||||
| -rwxr-xr-x | challenge-005/stuart-little/haskell/ch-2.hs | 14 |
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 |
