diff options
| author | chirvasitua <stuart-little@users.noreply.github.com> | 2021-01-14 00:51:43 -0500 |
|---|---|---|
| committer | chirvasitua <stuart-little@users.noreply.github.com> | 2021-01-14 00:51:43 -0500 |
| commit | 10ed97b35a250b490c858f0c618fe6436d934fa1 (patch) | |
| tree | a2fd60dff6fae6d47a0e5e7e4af266789d75dc8a /challenge-076 | |
| parent | b7eaedf3966c6e55b67a90af662a396ca524b5c0 (diff) | |
| download | perlweeklychallenge-club-10ed97b35a250b490c858f0c618fe6436d934fa1.tar.gz perlweeklychallenge-club-10ed97b35a250b490c858f0c618fe6436d934fa1.tar.bz2 perlweeklychallenge-club-10ed97b35a250b490c858f0c618fe6436d934fa1.zip | |
1st commit on 076_haskell
Diffstat (limited to 'challenge-076')
| -rw-r--r-- | challenge-076/stuart-little/README | 2 | ||||
| -rwxr-xr-x | challenge-076/stuart-little/haskell/ch-1.hs | 23 | ||||
| -rwxr-xr-x | challenge-076/stuart-little/haskell/ch-2.hs | 17 |
3 files changed, 41 insertions, 1 deletions
diff --git a/challenge-076/stuart-little/README b/challenge-076/stuart-little/README index 76119cbbb8..78439907de 100644 --- a/challenge-076/stuart-little/README +++ b/challenge-076/stuart-little/README @@ -1 +1 @@ -Solutions by Stuart Little. +Solutions by Stuart Little diff --git a/challenge-076/stuart-little/haskell/ch-1.hs b/challenge-076/stuart-little/haskell/ch-1.hs new file mode 100755 index 0000000000..088270c3d6 --- /dev/null +++ b/challenge-076/stuart-little/haskell/ch-1.hs @@ -0,0 +1,23 @@ +#!/usr/bin/env runghc + +{- +run <script> <number> + +returns a list of primes that sums to the target +-} + +import System.Environment (getArgs,) +import Data.Numbers.Primes (primes,isPrime,) + +primeSummands :: Int -> [Int] +primeSummands nr + |nr<=1 =[] + |isPrime nr =[nr] + |isPrime (nr - 2) =[2,nr-2] + |odd nr = 3:(primeSummands (nr-3)) + |otherwise = [p,nr-p] where + (p:_) = filter (isPrime.(nr-)) primes + +main = do + nr <- getArgs >>= return.(read::String->Int).head + print $ primeSummands nr diff --git a/challenge-076/stuart-little/haskell/ch-2.hs b/challenge-076/stuart-little/haskell/ch-2.hs new file mode 100755 index 0000000000..400b49fcc0 --- /dev/null +++ b/challenge-076/stuart-little/haskell/ch-2.hs @@ -0,0 +1,17 @@ +#!/usr/bin/env runghc + +-- run <script> <path-to-dict> + +import System.Environment (getArgs,) +import Data.List (isInfixOf,transpose,) +import Data.Tuple.Extra ((&&&),) +import Data.Universe.Helpers (diagonals,) +import Data.Char (toUpper,) + +allDirections :: [[a]] -> [[a]] +allDirections mat = concat $ take 4 $ map ((uncurry (++)).(id &&& diagonals)) $ iterate (reverse.transpose) mat + +main = do + wrds <- getArgs >>= (readFile.head) >>= (return.words) + let whereToLook = allDirections ["BIDEMIATSUCCORST","LDEGGIWQHODEEHDP","USEIRUBUTEASLAGU","NGNIZILAICOSCNUD","TGMIDSTSARAREIFG","SRENMDCHASIVEELI","SCSHAEUEBROADMTE","HWOVLPEDDLAIULSS","RYONLASFCSTAOGOT","IGUSSRRUGOVARYOC","NRGPATNANGILAMOO","EIHACEIVIRUSESED","SETSUDTTGARLICNH","HVRMXLWIUMSNSOTB","AEAOFILCHTODCAEU","ZSCDFECAAIIRLNRF","ARIIANYUTOOOUTPF","RSECISNABOSCNERA","DRSMPCUUNELTESIL"] + mapM_ putStrLn $ filter ((\w -> any (isInfixOf w) whereToLook).(map toUpper)) $ filter ((>=5).length) wrds |
