From: Mart Lubbers Date: Sun, 2 Dec 2018 08:51:23 +0000 (+0100) Subject: sets X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=7a64ef790e1ab861665bbab6642816d92471f1f9;p=advent18.git sets --- diff --git a/1/s2.icl b/1/s2.icl new file mode 100644 index 0000000..9b150f2 --- /dev/null +++ b/1/s2.icl @@ -0,0 +1,32 @@ +module s2 + +import StdEnv + +import Data.Func +import qualified Data.Set +import Text + +getinput 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 + +Start w +# (_, io, w) = fopen "input.txt" FReadText w += proc 'Data.Set'.newSet + $ scan (+) 0 + $ map (toInt o toString) + $ flatten + $ repeat + $ split [] + $ getinput io + +proc have [x:xs] + | 'Data.Set'.member x have = x + = proc ('Data.Set'.insert x have) xs