t0421.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 29 行

SCALA
29
字号
// ticket #421object Test extends Application {  def transpose[A](xss: Array[Array[A]]) = {    for (i <- Array.range(0, xss(0).length)) yield      for (xs <- xss) yield xs(i)  }  def scalprod(xs: Array[Double], ys: Array[Double]) = {    var acc = 0.0     for ((x, y) <- xs zip ys) acc = acc + x * y      acc  }  def matmul(xss: Array[Array[Double]], yss: Array[Array[Double]]) = {    val ysst = transpose(yss)     for (xs <- xss) yield      for (yst <- ysst) yield         scalprod(xs, yst)  }  val a1 = Array(Array(0, 2, 4), Array(1, 3, 5))  println(transpose(a1).deepMkString("[", ",", "]"))  println(matmul(Array(Array(2, 3)), Array(Array(5), Array(7))).deepMkString("[", ",", "]"))    println(matmul(Array(Array(4)), Array(Array(6, 8))).deepMkString("[", ",", "]"))}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?