我正在处理一些Haskell函数示例但是我并不了解这个特定的函数。现在功能是:
func [n] = n
func (n:ns) = func [n+x|x<-ns]
我知道这是一个列表理解,我还了解到列表推导的语法是这样的:
[return-expression | elem <- collection, predicate]
但我仍然无法确定这个功能是如何工作的,它有什么作用?你能解释一下吗?
也很抱歉我的英语。
答案 0 :(得分:4)
[n+x|x<-ns]
是通过将n
添加到ns
的每个元素而获得的列表。它相当于map (+n) ns
。
因此,我们有,例如:
func [a,b,c,d] =
func [a+b,a+c,a+d] =
func [a+b+a+c,a+b+a+d] =
func [a+b+a+c+a+b+a+d] =
a+b+a+c+a+b+a+d