`
fff
  • 浏览: 32318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

scala foldLeft & foldRight

阅读更多
foldLeft /: (s)(s,t=>)
foldRight :\ (t)(s,t=>)
这里的s,t的变换很巧妙,也可以说很讨厌,下面两列对应与(s,t)
引用

另外一种理解方式
foldLeft /: (s)(s,t=>)
foldRight :\ (s)(t,s=>)

l./:("")((s,t)=>{t+"_"+s})
                            1
1_                          2
2_1_                        3
3_2_1_                      4
4_3_2_1_                    5
5_4_3_2_1_                  6
6_5_4_3_2_1_                7
7_6_5_4_3_2_1_              8
8_7_6_5_4_3_2_1_            9
9_8_7_6_5_4_3_2_1_         10
10_9_8_7_6_5_4_3_2_1_      11
res122: java.lang.String = 11_10_9_8_7_6_5_4_3_2_1_

scala> l.:\("")((s,t)=>{t+"_"+s})
11                           
10                        _11
9                      _11_10
8                    _11_10_9
7                  _11_10_9_8
6                _11_10_9_8_7
5              _11_10_9_8_7_6
4            _11_10_9_8_7_6_5
3          _11_10_9_8_7_6_5_4
2        _11_10_9_8_7_6_5_4_3
1      _11_10_9_8_7_6_5_4_3_2
res123: java.lang.String = _11_10_9_8_7_6_5_4_3_2_1




分享到:
评论

相关推荐

    scala2.13.3

    这个新库提供了更丰富的操作,如`foldLeft`和`foldRight`,并优化了并行处理。此外,新集合库还引入了不可变集合,这在函数式编程中是非常重要的。 3. **模块化改进**:Scala 2.13 将标准库分解为多个模块,比如...

    scala-2.8.0.final

    Scala 2.8.0的`TraversableOnce`和`IterableOnce`接口引入了新的通用操作,如`foldLeft`和`foldRight`,这些操作能够对集合进行高效聚合。同时,`map`、`filter`和`flatMap`等高阶函数也得到了进一步的优化,提升了...

    functional-collections:如果python不反对函数式编程该怎么办?

    reducers:reduce,fold,foldLeft,foldRight,join,mkString,forAll,sum,find,existing,min,max 整形工具:zip,展平,groupBy,分组,收集,枚举,组合,排列,收集,匹配 实用程序:空,nonEmpty,toSet...

    Some-Scala-Projects

    6. **集合库**:Scala的集合库是一大亮点,提供了丰富的操作和转换方法,如`foldLeft`、`foldRight`、`flatMap`等。集合可以被视作不可变的,这在并发环境下尤其安全。 7. **泛型**:Scala的泛型系统允许定义泛型类...

    Scala 计算算子

    除了排序,Scala集合库还提供了许多其他有用的算子,如`map`(应用函数到集合的每个元素并创建新集合),`filter`(根据给定条件保留元素),`foldLeft`和`foldRight`(聚合元素并返回一个单一值),以及`flatMap`...

    Scala-Functional-Programming

    在`Scala-Functional-Programming-master`项目中,可能包含了各种Scala函数式编程的实例,如使用`foldLeft`和`foldRight`操作数组,利用`flatMap`进行集合操作,以及实现`monad`概念的例子。通过学习这些示例,你...

    Algorithm-scalgos.zip

    这些排序算法在Scala中可以通过函数式编程的方式实现,例如使用`foldLeft`或`foldRight`来构建排序过程。 2. 查找算法:包括线性查找(LinearSearch)和二分查找(BinarySearch)。Scala的`Array`和`List`类都提供...

    SentenceAnalyzer:BigData课程的最终scala源代码

    4. **统计分析**:通过`foldLeft`或`foldRight`等函数计算单词频率,或者使用`groupBy`函数将单词按类别分组,进行词频统计或情感分析。 5. **结果可视化**:可能使用如Spark的MLlib库进行机器学习,或者借助第三方...

    Stream-Programming

    3. **折叠(foldLeft/foldRight)**:从左到右或从右到左聚合元素。 4. **take/drop**:取前n个元素或丢弃前n个元素。 5. **head/tail**:获取第一个元素和剩余元素。 6. **concat**:连接两个或多个`Stream`。 7. *...

    T2_A2_ProgramasEnScala_Listas

    3. **列表操作**:Scala提供了丰富的操作来处理列表,如`map`(对每个元素应用函数并返回新列表)、`filter`(根据条件过滤元素)、`foldLeft`和`foldRight`(用于列表的累积操作)、`flatMap`(将列表元素映射到另...

    bakka:使用 akka 管理并发的游乐场

    #Banking with akka 在银行示例中探索不同并发选择的游乐场##Compiling 您可以通过运行activator ui从浏览器访问此代码。 您还可以使用 IntelliJ 社区版 + Scala 插件打开... 而foldLeft从最旧的Transaction开始,因此

    学习不同 Java.net 语言中类似的函数结构

    在Scala中,常见的缩减函数有`foldLeft()`和`foldRight()`。例如,使用`foldLeft()`计算列表元素的总和: ```scala numbers.foldLeft(0)(_ + _) // 55 ``` 在Groovy中,虽然它不是一个纯粹的函数式语言,但也有...

Global site tag (gtag.js) - Google Analytics