Haskell函数foldl(\ xy-> x * 2 + y * 2)0行为

维克托·波诺马连科(Victor Ponomarenko)

我遇到了问题。这两个功能有什么区别:

foldl (\x y -> x*2 + y*2) 0 [1,2,3] = 22
foldr (\x y -> x*2 + y*2) 0 [1,2,3] = 34

foldl (\x y -> x*2 + y*2) 0 [1,2,3] ⇒ f( f( f(0,1),2 ),3 )
foldr (\x y -> x*2 + y*2) 0 [1,2,3] ⇒ f( 3,f( 2, f(1,0) ) )

在哪里f = \x y -> x*2 + y*2

我了解以下结果foldl

x = f(0,1) = 2
y = f(x,2) = 8
z = f(y,3) = 22

但是为什么要foldr在每个步骤的结果之后求和呢?

2 + 8 + 22 = 34
大卫·杨

您的foldr评估落后了。它看起来应该像这样:

foldr f 0 [1,2,3] == f 1 (f 2 (f 3 0))

相比之下,foldl评估(在您的问题中是正确的)看起来像

foldl f 0 [1,2,3] == f (f (f 0 1) 2) 3

如果您认为列表[1,2,3]与相同1:2:3:[]可以放心地使用以下图表foldr

文件夹图

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

x上(1/2)*(xy)^ 2的微分是x-y

来自分类Dev

x <= y和xy <= 0在浮点运算中是否等效?

来自分类Dev

x <= y和xy <= 0在浮点运算中是否等效?

来自分类Dev

从文件X和Y复制内容以创建文件XY,但是XY内容全部为小写

来自分类Dev

合并(2个列表)X坐标列表和Y坐标列表以获取(1个列表)XY坐标列表

来自分类Dev

xy和x ['y']可以对主机对象产生不同的行为吗?

来自分类Dev

我们如何产生数字 xy,其中 x 和 y 是两个参数或函数?

来自分类Dev

在pandas数据框中选择其列值为XY0001-XY0879的行,其中X和Y可以是任何数字

来自分类Dev

函数缺少2个必需的位置参数:“ x”和“ y”

来自分类Dev

函数缺少2个必需的位置参数:“ x”和“ y”

来自分类Dev

在Haskell的2维列表上使用foldl

来自分类Dev

为什么在布尔代数中XY + XZ + YZ可以简化为XY + Z(X¬Y+¬XY)?

来自分类Dev

x import y和import xy之间的区别

来自分类Dev

matlab sum(XY)vs sum(X)-sum(Y)

来自分类Dev

(concat [x] y)和(cons xy)有什么区别?

来自分类Dev

(x'y'+ z)'+ z + xy + wz的布尔代数简化

来自分类Dev

我如何证明(eqb xy)表示x = y

来自分类Dev

将字符串“ xy”转换为“ x”和“ y”

来自分类Dev

<*> 在 addRecip xy = fmap (+) (recipMay x) <*> recipMay y 中做了什么?

来自分类Dev

在Agda中构造函数不相交吗?(或如何反证inj x y inj 2 y)

来自分类Dev

我如何在xy平面中生成一个与y0(a,b)相距10步的随机点(x,y)?

来自分类Dev

将R中具有X1,Y1,X2,Y2的数据帧重塑为X,Y1,Y2

来自分类Dev

如何将点A(x,y2)处的点A(x,y)的像素设置为1?

来自分类Dev

Swift:为FloatingPoint数字计算atan2(y,x)?

来自分类Dev

(x * 2)> y SQL显示语句

来自分类Dev

X或Y设置的Vector2属性

来自分类Dev

(x * 2)> y SQL显示语句

来自分类Dev

如何绘制 (x^2+y^2-1)^3=x^2*y^3?

来自分类Dev

createjs,使用x1,y1和x2,y2坐标为线设置动画

Related 相关文章

  1. 1

    x上(1/2)*(xy)^ 2的微分是x-y

  2. 2

    x <= y和xy <= 0在浮点运算中是否等效?

  3. 3

    x <= y和xy <= 0在浮点运算中是否等效?

  4. 4

    从文件X和Y复制内容以创建文件XY,但是XY内容全部为小写

  5. 5

    合并(2个列表)X坐标列表和Y坐标列表以获取(1个列表)XY坐标列表

  6. 6

    xy和x ['y']可以对主机对象产生不同的行为吗?

  7. 7

    我们如何产生数字 xy,其中 x 和 y 是两个参数或函数?

  8. 8

    在pandas数据框中选择其列值为XY0001-XY0879的行,其中X和Y可以是任何数字

  9. 9

    函数缺少2个必需的位置参数:“ x”和“ y”

  10. 10

    函数缺少2个必需的位置参数:“ x”和“ y”

  11. 11

    在Haskell的2维列表上使用foldl

  12. 12

    为什么在布尔代数中XY + XZ + YZ可以简化为XY + Z(X¬Y+¬XY)?

  13. 13

    x import y和import xy之间的区别

  14. 14

    matlab sum(XY)vs sum(X)-sum(Y)

  15. 15

    (concat [x] y)和(cons xy)有什么区别?

  16. 16

    (x'y'+ z)'+ z + xy + wz的布尔代数简化

  17. 17

    我如何证明(eqb xy)表示x = y

  18. 18

    将字符串“ xy”转换为“ x”和“ y”

  19. 19

    <*> 在 addRecip xy = fmap (+) (recipMay x) <*> recipMay y 中做了什么?

  20. 20

    在Agda中构造函数不相交吗?(或如何反证inj x y inj 2 y)

  21. 21

    我如何在xy平面中生成一个与y0(a,b)相距10步的随机点(x,y)?

  22. 22

    将R中具有X1,Y1,X2,Y2的数据帧重塑为X,Y1,Y2

  23. 23

    如何将点A(x,y2)处的点A(x,y)的像素设置为1?

  24. 24

    Swift:为FloatingPoint数字计算atan2(y,x)?

  25. 25

    (x * 2)> y SQL显示语句

  26. 26

    X或Y设置的Vector2属性

  27. 27

    (x * 2)> y SQL显示语句

  28. 28

    如何绘制 (x^2+y^2-1)^3=x^2*y^3?

  29. 29

    createjs,使用x1,y1和x2,y2坐标为线设置动画

热门标签

归档