【发布时间】:2021-12-26 15:07:52
【问题描述】:
我需要一点帮助来理解一个理解方法函数。
compdivides :: Integer -> [Integer]
compdivides x
| x > 0 = [a | a <-[1..div x 2], mod x a == 0] ++ [x]
| otherwise = compdivides (abs x)
我知道如果 x 为正,我们执行第 3 行,否则执行第 4 行。
在第三行中,我们检查 mod x a == 0 是否只有然后我们才执行其他所有操作。
但是,我似乎无法理解这部分a <-[1..div x 2]这里到底发生了什么?
另外,为什么我们最后要这样做 ++ [x] ?我们到底在做什么?
itemTotal :: [(String, Float)] -> [(String, Float)]
itemTotal [] = []
itemTotal [x] = [x]
我也遇到了一些麻烦。 我知道如果列表为空,我们只需返回一个空列表。
但是,我们在这里说什么? itemTotal [x] = [x] 如果列表只有一件事,我们只需返回那一件事?
非常感谢您的帮助!
【问题讨论】:
标签: haskell functional-programming