From 3dd64f8dfcf6bbe728fd1075dce9b1c6abb1ee59 Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Thu, 12 Jan 2023 08:58:46 +0000 Subject: [FP/HW3] Post-submission fix of countUniques to accept the whole file --- Year 2/Functional Programming/hw3.hs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'Year 2/Functional Programming') diff --git a/Year 2/Functional Programming/hw3.hs b/Year 2/Functional Programming/hw3.hs index 2b1b864..de81bd5 100644 --- a/Year 2/Functional Programming/hw3.hs +++ b/Year 2/Functional Programming/hw3.hs @@ -22,14 +22,19 @@ generate as bs = asiter as bs (head as) -- Задача 2 +countUniques :: String -> Int +countUniques f = foldr (\el accum -> accum + (countUniquesLine el)) 0 (lines f) + -- Пропускаме всичко до "|" (включително), преобразуваме стринговете в дължини, оставяме само тези, -- които отговарят на желаните цифри (1, 4, 7, 8) и бройм -countUniques :: String -> Int -countUniques inpt = length (filter (\v -> elem v [2, 3, 4, 7]) (map length (drop 11 (words inpt)))) +countUniquesLine :: String -> Int +countUniquesLine inpt = length (filter (\v -> elem v [2, 3, 4, 7]) (map length (drop 11 (words inpt)))) main :: IO() main = do - print(generate [10, 15, 25, 35, 45] [1, 5, 20, 30, 40, 50]) + print(generate [10, 15, 25] [1, 5, 20, 30]) + sample <- readFile "sample.txt" + print(countUniques sample) inpt <- readFile "input.txt" - print(foldr (\el accum -> accum + (countUniques el)) 0 (lines inpt)) + print(countUniques inpt) -- cgit v1.3.1-23-gd82d