zoukankan      html  css  js  c++  java
  • 问题:计算foldRight(1)(_-_) 与foldLeft(1)(_-_)值不一样

    List(1,2,3,4)
    问题:计算foldRight(1)(_-_) 与foldLeft(1)(_-_)值不一样
    首先看foldRight(1)(_-_)计算过程
    ((( (1-1)-2)-3)-4) 也就是等价与1-1-2-3-4=-9(从左往右减)
    然而foldLeft过程是:
    List(1,2,3,4):

    4 - 1 = 3
    3 - 3 = 0
    2 - 0 = 2
    1 - 2 = -1(答案-1)
    注意第一列他是倒着减的,也就是(x-y)转换成(y-x)
    下面是源码。可以参照理解
    def foldRight[B](z: B)(op: (A, B) => B): B =
    reversed.foldLeft(z)((x, y) => op(y, x))

  • 相关阅读:
    JDK6和JDK7中的substring()方法
    考试结束
    今天之总结
    暂别
    珍惜
    放弃
    我男神
    心态
    稳住,我或许能赢
    还是做好自己吧
  • 原文地址:https://www.cnblogs.com/GuangMingDingFighter/p/9864598.html
Copyright © 2011-2022 走看看