Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
1 files changed, 5 insertions, 0 deletions
-rw-r--r--Year 2/Functional Programming/hw3.hs5
diff --git a/Year 2/Functional Programming/hw3.hs b/Year 2/Functional Programming/hw3.hs
index 041c24d..2b1b864 100644
--- a/Year 2/Functional Programming/hw3.hs
+++ b/Year 2/Functional Programming/hw3.hs
@@ -6,13 +6,18 @@ generate as bs = asiter as bs (head as)
asiter [] _ _ = []
asiter as bs minm
| head as < minm = asiter (tail as) bs minm
+ -- Минаваме през всеки елемент от as и строим всички редици, които започват с него
| otherwise = bsiter as bs (head as) ++ asiter (tail as) bs (head as)
bsiter _ [] _ = []
bsiter as bs minm
| head bs < minm = bsiter as (tail bs) minm
+ -- Минаваме през всеки елемент от bs и строим редици
+ -- Първият елемент, започващ с as и сегашния bs
| otherwise = [[head as, head bs]]
+ -- Всички редици, които започват с [as, bs], тоест строим всички възможни редици без сегашните глави на as и bs
++ (map (\x -> [head as, head bs] ++ x) (asiter (tail as) (tail bs) (head bs)))
+ -- Следващ елемент от bs
++ bsiter as (tail bs) (head bs)
-- Задача 2