sets
authorMart Lubbers <mart@martlubbers.net>
Sun, 2 Dec 2018 08:51:23 +0000 (09:51 +0100)
committerMart Lubbers <mart@martlubbers.net>
Sun, 2 Dec 2018 08:51:23 +0000 (09:51 +0100)
1/s2.icl [new file with mode: 0644]

diff --git a/1/s2.icl b/1/s2.icl
new file mode 100644 (file)
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