From: Mart Lubbers Date: Sun, 2 Dec 2018 10:15:40 +0000 (+0100) Subject: 2.2 improve X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=85b75fa55001e8dc74c7e1621f96dca430f9296c;p=advent18.git 2.2 improve --- diff --git a/2/s2.icl b/2/s2.icl index 7c02f7c..37febf4 100644 --- a/2/s2.icl +++ b/2/s2.icl @@ -1,30 +1,22 @@ module s2 import StdEnv - import Data.Func -import Data.List -import Data.Tuple -getinput f +getinput :: [Char] *File -> [[Char]] +getinput a f # (ok, c, f) = freadc f -| not ok = [] -= [c:getinput f] - -split :: [Char] [Char] -> [[Char]] -split [] [] = [] -split c [] = [reverse c] -split c ['\n':rest] = [reverse c:split [] rest] -split c [r:rest] = split [r:c] rest +| not ok = if (a =: []) [] [reverse a] +| c == '\n' = [reverse a:getinput [] f] += getinput [c:a] f Start w # (io, w) = stdio w -= map (map fst o filter (uncurry (==)) o zip) += map (toString o map fst o filter (uncurry (==)) o zip) $ flatten $ filter (not o isEmpty) $ proc - $ split [] - $ getinput io + $ getinput [] io proc [] = [] proc [x:xs] = [[(e, x)\\e<-xs | length [()\\a<-x & b<-e | a<>b] <= 1]:proc xs]