Summary Files Commits Branches @commit @diff @stats
path: root / Year 2 / Functional Programming
diff options
context:
space:
mode:
Commite5ce6898294e7610fd6a0404ef513fddee60663d (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-12-25 11:17:28 +0200
Committer
 Syndamia <kamen@syndamia.com>
2022-12-25 11:17:28 +0200
Filesf13d6bfa7bb8d5e9a89eb9c28932b5ff1cb63b57 /Year 2/Functional Programming
uni-projects-e5ce6898294e7610fd6a0404ef513fddee60663d.tar
uni-projects-e5ce6898294e7610fd6a0404ef513fddee60663d.tar.gz
uni-projects-e5ce6898294e7610fd6a0404ef513fddee60663d.zip
Parent30c5b70d4b9b40f07bf23b1dbf5e2cd50137bbdb (diff)
[FP/HW3] Added comments to first exercise
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