【问题标题】:Haskell squaring list elements and then adding them togetherHaskell对列表元素进行平方,然后将它们加在一起
【发布时间】:2017-11-22 00:27:53
【问题描述】:

我已经编写了 divisible_by2 来对列表中所有偶数且小于 20 的元素求平方。我的第二个函数 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> 

【问题讨论】:

  • 你就不能写foldr (+) 1 [ x * x | x &lt;- [2,4..18]]吗?具体是什么问题?
  • @Carcigenicate 我需要打印列表和总和
  • 您希望在运行 divisible_by2 时两者都打印?应该限制​​打印。
  • 我建议创建一个 main 函数来打印两个现有函数的结果。

标签: list haskell sum


【解决方案1】:

我猜你只是想要:

foo = (divisible_by2, sum2)

另外,foldr (+) 1 中的 1 看起来很奇怪。您可能想要一个 0 代替,或者可能只想用对 sum 的调用替换整个 foldr 表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多