小编USc*_*der的帖子

使用Scala将两个列表相乘的函数式样式

我正在使用Scala 2.9,并希望根据某些操作构建一个列表.

请考虑以下内容,我有两个简单的列表:


    val l1 = List(2,3)
    val l2 = List(List(4,5,6),List(7,8,9))

我想要的行为如下,一个两个列表的操作,如下所示:


    (2*4)+(3*7)
    (2*5)+(3*8)
    (2*6)+(3*9)

我希望得到另一个包含这些值的列表:

29,34,39

我已经尝试用上面的源代码解决了.我可能完全以错误的方式思考这个问题,但我很难想出一个优雅的解决方案.

    val lr = (l1,l2).zipped.map( (t1:Int, t2:List[Int]) =>
        ...
    )    
    println (lr) // should print List(29, 34, 39)

但是,我甚至不确定我是否以正确的方式或者我应该如何继续.谁能想到我问题的优雅解决方案?

functional-programming scala

5
推荐指数
1
解决办法
2546
查看次数

标签 统计

functional-programming ×1

scala ×1