From 85b75fa55001e8dc74c7e1621f96dca430f9296c Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Sun, 2 Dec 2018 11:15:40 +0100 Subject: [PATCH] 2.2 improve --- 2/s2.icl | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) 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] -- 2.20.1