projects
/
advent-of-code-16.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tweaked implementation of allSubstrings
[advent-of-code-16.git]
/
advent07.hs
diff --git
a/advent07.hs
b/advent07.hs
index a82177eed381220d0de75d9c513bef3615580bdc..2705b9d161a0c3652371fd2b9c8182cba99081a4 100644
(file)
--- a/
advent07.hs
+++ b/
advent07.hs
@@
-1,6
+1,7
@@
import Text.Parsec
import Control.Applicative ((<$), (<*), (*>), liftA)
import Text.Parsec
import Control.Applicative ((<$), (<*), (*>), liftA)
-import Data.List (partition, union, intersect)
+import Data.List (partition, union, intersect, tails)
+import Data.Char (isAlphaNum)
data Chunk = Include String | Exclude String deriving (Show)
data ChunkV = Includev Bool | Excludev Bool deriving (Show)
data Chunk = Include String | Exclude String deriving (Show)
data ChunkV = Includev Bool | Excludev Bool deriving (Show)
@@
-69,6
+70,15
@@
abba =
char a
return [a, b, b, a]
char a
return [a, b, b, a]
+-- where
+-- firstChar = satisfy (\a -> isLetter a || a == '_')
+-- nonFirstChar = satisfy (\a -> isDigit a || isLetter a || a == '_')
+
+ -- b <- bChar
+-- where bChar = satisfy (\l -> lsLetter l && l /= a)
+
+
+
i7filev = i7linev `endBy` newline
i7linev = many1 (includeChunkv <|> excludeChunkv)
i7filev = i7linev `endBy` newline
i7linev = many1 (includeChunkv <|> excludeChunkv)
@@
-102,9
+112,11
@@
successfulParse (Right a) = a
allSubstrings :: Int -> [a] -> [[a]]
allSubstrings :: Int -> [a] -> [[a]]
-allSubstrings n es
- | length es < n = []
- | otherwise = (take n es) : (allSubstrings n $ tail es)
+-- allSubstrings n es
+-- | length es < n = []
+-- | otherwise = (take n es) : (allSubstrings n $ tail es)
+allSubstrings n e = filter (\s -> length s == n) $ map (take n) $ tails e
+
ieCandidates :: [Chunk] -> ([String], [String])
ieCandidates chunks = (includeCandidates, excludeCandidates)
ieCandidates :: [Chunk] -> ([String], [String])
ieCandidates chunks = (includeCandidates, excludeCandidates)