【发布时间】:2016-09-16 23:13:09
【问题描述】:
所以我需要实现一个需要两个列表和一个函数的函数。然后该函数使用两个列表的元素并将该函数应用于元素,并通过使用 map 和/或 fold 以及列表类中的函数将它们保存到列表中。
例子:
• zipWith((x: Int, y: Int) => x + y, List(1, 2, 3), List(4, 5, 6))
→ 列表(5, 7, 9)
• zipWith((x:Int,y:Int) => x, List(1,2,3), List(4,5,6))
→ 列表(1, 2, 3)
我不知道如何使用传递的函数并将其应用于两个列表。我的想法是压缩这两个列表,然后将函数应用于压缩列表的每个元素。
【问题讨论】:
-
你能告诉我们你为你的想法编写的代码吗?
-
l1.zip(l2).map{ (A,B) => f(A,B) } 但我得到类型未匹配错误,因为我假设我不能在其中使用 f符号。
-
zip方法返回一个元组列表,因此您在这里缺少模式匹配:l1.zip(l2).map{ case (a,b) => f(a,b) } -
我需要在不使用模式匹配和递归的情况下解决这个问题。但谢谢这也有效。
-
@Kiki 如果这是作业,您应该在问题中提及。
标签: list scala dictionary functional-programming fold