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




你可能感兴趣的:(scala,Ruby)