Haskell将列表元素放在一起,然后将它们加在一起

时间:2017-11-22 00:27:53

标签: list haskell sum

我写了divisible_by2来对列表中所有偶数且小于二十的元素进行平方。我的第二个函数sum2对divisible_by2的所有元素求和。我需要帮助组合这些函数,以便在运行divisible_by2时编译两个函数。

  divisible_by2 = [ x * x| x <- [2,4..18]]  
  sum2 = foldr (+) 1 divisible_by2  

单独运行时,两个函数都会提供正确的输出

   *Main> :r
   Ok, 1 module loaded.
   *Main> divisible_by2
   [4,16,36,64,100,144,196,256,324]
   *Main> sum2
   1141
   *Main> 

1 个答案:

答案 0 :(得分:2)

我猜你只想要:

foo = (divisible_by2, sum2)

此外,您1中的foldr (+) 1看起来很奇怪。你可能想要0,或者想要通过调用foldr来替换整个sum表达式。