小编use*_*432的帖子

Scala澄清中的map函数

我对如何编写映射两个列表的map函数很困惑:

例如:

def map[A,B,C](f: (A, B) => C, lst1: List[A], lst2: List[B]): List[C]
Run Code Online (Sandbox Code Playgroud)

输入将是2个列表,输出可以是替代地添加整数的列表

测试示例:

assert(map(add, List(1, 2, 3), List(4, 5, 6)) == List(5, 7, 9))
Run Code Online (Sandbox Code Playgroud)

scala

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

从列表中删除数字的Scala递归函数需要工作

我有一个递归方法,其中删除它应该来自给定列表的所有零.

def removeZ(list:List[Int], n:Int):List[Int] = list match {
  case Nil => Nil
  case h::t=>
    if (h == n)
      t
    else 
      h :: removeZ(t,n)
}
Run Code Online (Sandbox Code Playgroud)

这将从列表中删除一个零,但如果列表有多个零,则不会.我尝试添加另一个if else语句,它不起作用,例如:

if else(t==n)
   removeZ(t,n)
Run Code Online (Sandbox Code Playgroud)

如何删除所有零?

recursion scala function

0
推荐指数
1
解决办法
71
查看次数

如何从头开始编写zip函数

如何编写zip函数,它将列表中的相应元素组成元组.我知道zip是一个内置功能,但我试图从头开始编写它.

def zip[A,B](lst1: List[A], lst2: List[B]): List[(A, B)]
Run Code Online (Sandbox Code Playgroud)

测试例子是:

test("zip test 1") {
assert(zip(List(1, 2, 3), List(4, 5, 6)) == List((1,4), (2, 5), (3, 6)))
}
Run Code Online (Sandbox Code Playgroud)

或字符串作为参数:

test("zip test 2") {
assert(zip(List("hey", "code"), List("world", "scala")) ==
List(("hey", "world"), ("code", "scala")))
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我试过这个:

 def zip[A,B](lst1:List[A], lst2:List[B]):List[(A,B)] = (lst1,lst2) match{
    case Nil=> Nil
    case (h1::t1 :: h2 :: t2) =>zip(t1, t2)
 }
Run Code Online (Sandbox Code Playgroud)

但是我遇到了类型不匹配错误和不可变性错误.

scala tuples

0
推荐指数
1
解决办法
527
查看次数

标签 统计

scala ×3

function ×1

recursion ×1

tuples ×1