⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 course-2002-02.scala

📁 JAVA 语言的函数式编程扩展
💻 SCALA
📖 第 1 页 / 共 2 页
字号:
      if (a > b) result      else iter(a + 1, result + f(a))    }    iter(a, 0)  }  def product(f: Int => Double)(a: Int, b: Int): Double = {    def iter(a: Int, result: Double): Double = {      if (a > b) result      else iter(a + 1, result * f(a))    }    iter(a, 1)  }  def factorial(n: Int) = product(x => x)(1 , n)  Console.println(      "1 + 2 + .. + 5 = " + sum(x => x)(1, 5));  Console.println(      "1 * 2 * .. * 5 = " + product(x => x)(1, 5));  Console.println;  Console.println(      "1^2 + 2^2 + .. + 5^2 = " + sum(x => x*x)(1, 5));  Console.println(      "1^2 * 2^2 * .. * 5^2 = " + product(x => x*x)(1, 5));  Console.println;  Console.println(      "factorial(0) = " + factorial(0))  Console.println(      "factorial(1) = " + factorial(1))  Console.println(      "factorial(2) = " + factorial(2))  Console.println(      "factorial(3) = " + factorial(3))  Console.println(      "factorial(4) = " + factorial(4))  Console.println(      "factorial(5) = " + factorial(5))  Console.println}//############################################################################object MD {  def reduce(op: (Double,Double) => Double, zero:Double)(f: Int => Double)(a: Int,b: Int): Double = {    def iter(a: Int, result: Double): Double = {      if (a > b) result      else iter(a + 1, op(result, f(a)))    }    iter(a, zero)  }  def plus (x:Double,y:Double) = x+y;   val sum: (Int => Double) => (Int, Int) => Double = reduce(plus , 0);  def times(x:Double,y:Double) = x*y;   val product: (Int => Double) => (Int, Int) => Double = reduce(times, 1);  def factorial(n: Int) = product(x => x)(1 , n)  Console.println(      "1 + 2 + .. + 5 = " + sum(x => x)(1, 5))  Console.println(      "1 * 2 * .. * 5 = " + product(x => x)(1, 5))  Console.println;  Console.println(      "1^2 + 2^2 + .. + 5^2 = " + sum(x => x*x)(1, 5))  Console.println(      "1^2 * 2^2 * .. * 5^2 = " + product(x => x*x)(1, 5))  Console.println;  Console.println(      "factorial(0) = " + factorial(0))  Console.println(      "factorial(1) = " + factorial(1))  Console.println(      "factorial(2) = " + factorial(2))  Console.println(      "factorial(3) = " + factorial(3))  Console.println(      "factorial(4) = " + factorial(4))  Console.println(      "factorial(5) = " + factorial(5))  Console.println}//############################################################################object ME {  def reduce(op: (Double,Double) => Double, zero:Double)(f: Int => Double)(a: Int,b: Int): Double = {    def iter(a: Int, result: Double): Double = {      if (a > b) result      else iter(a + 1, op(result, f(a)))    }    iter(a, zero)  }  def sum: (Int => Double) => (Int, Int) => Double     = reduce((x,y) => x + y, 0);  def product: (Int => Double) => (Int, Int) => Double = reduce((x,y) => x * y, 1);  def factorial(n: Int) = product(x => x)(1 , n)  Console.println(      "1 + 2 + .. + 5 = " + sum(x => x)(1, 5))  Console.println(      "1 * 2 * .. * 5 = " + product(x => x)(1, 5))  Console.println;  Console.println(      "1^2 + 2^2 + .. + 5^2 = " + sum(x => x*x)(1, 5))  Console.println(      "1^2 * 2^2 * .. * 5^2 = " + product(x => x*x)(1, 5))  Console.println;  Console.println(      "factorial(0) = " + factorial(0))  Console.println(      "factorial(1) = " + factorial(1))  Console.println(      "factorial(2) = " + factorial(2))  Console.println(      "factorial(3) = " + factorial(3))  Console.println(      "factorial(4) = " + factorial(4))  Console.println(      "factorial(5) = " + factorial(5))  Console.println}//############################################################################object MF {  def fib(x: Int): Int =    if (x <= 1) x    else fib(x - 2) + fib(x - 1)  Console.println("fib(0) = " + fib(0))  Console.println("fib(1) = " + fib(1))  Console.println("fib(2) = " + fib(2))  Console.println("fib(3) = " + fib(3))  Console.println("fib(4) = " + fib(4))  Console.println("fib(5) = " + fib(5))  Console.println("fib(6) = " + fib(6))  Console.println("fib(7) = " + fib(7))  Console.println("fib(8) = " + fib(8))  Console.println("fib(9) = " + fib(9))}//############################################################################object MG {  def fib(x: Int) = {    def loop(n: Int, prev: Int, fibn: Int): Int =      if (n == x) fibn      else loop(n + 1, fibn, fibn + prev)    if (x == 0) 0 else loop(1, 0, 1)  }  Console.println("fib(0) = " + fib(0))  Console.println("fib(1) = " + fib(1))  Console.println("fib(2) = " + fib(2))  Console.println("fib(3) = " + fib(3))  Console.println("fib(4) = " + fib(4))  Console.println("fib(5) = " + fib(5))  Console.println("fib(6) = " + fib(6))  Console.println("fib(7) = " + fib(7))  Console.println("fib(8) = " + fib(8))  Console.println("fib(9) = " + fib(9))}//############################################################################object MH {  def power(x: Double, y: Int): Double =    if (y <= 0) 1    else if (y % 2 == 0) power(x * x, y / 2)    else x * power(x, y - 1);  Console.println("power(0,0) = " + power(0,0))  Console.println("power(0,1) = " + power(0,1))  Console.println("power(0,2) = " + power(0,2))  Console.println("power(0,3) = " + power(0,3))  Console.println("power(0,4) = " + power(0,4))  Console.println("power(0,5) = " + power(0,5))  Console.println("power(0,6) = " + power(0,6))  Console.println("power(0,7) = " + power(0,7))  Console.println("power(0,8) = " + power(0,8))  Console.println  Console.println("power(1,0) = " + power(1,0))  Console.println("power(1,1) = " + power(1,1))  Console.println("power(1,2) = " + power(1,2))  Console.println("power(1,3) = " + power(1,3))  Console.println("power(1,4) = " + power(1,4))  Console.println("power(1,5) = " + power(1,5))  Console.println("power(1,6) = " + power(1,6))  Console.println("power(1,7) = " + power(1,7))  Console.println("power(1,8) = " + power(1,8))  Console.println  Console.println("power(2,0) = " + power(2,0))  Console.println("power(2,1) = " + power(2,1))  Console.println("power(2,2) = " + power(2,2))  Console.println("power(2,3) = " + power(2,3))  Console.println("power(2,4) = " + power(2,4))  Console.println("power(2,5) = " + power(2,5))  Console.println("power(2,6) = " + power(2,6))  Console.println("power(2,7) = " + power(2,7))  Console.println("power(2,8) = " + power(2,8))  Console.println  Console.println("power(3,0) = " + power(3,0))  Console.println("power(3,1) = " + power(3,1))  Console.println("power(3,2) = " + power(3,2))  Console.println("power(3,3) = " + power(3,3))  Console.println("power(3,4) = " + power(3,4))  Console.println("power(3,5) = " + power(3,5))  Console.println("power(3,6) = " + power(3,6))  Console.println("power(3,7) = " + power(3,7))  Console.println("power(3,8) = " + power(3,8))  Console.println  Console.println("power(4,0) = " + power(4,0))  Console.println("power(4,1) = " + power(4,1))  Console.println("power(4,2) = " + power(4,2))  Console.println("power(4,3) = " + power(4,3))  Console.println("power(4,4) = " + power(4,4))  Console.println("power(4,5) = " + power(4,5))  Console.println("power(4,6) = " + power(4,6))  Console.println("power(4,7) = " + power(4,7))  Console.println("power(4,8) = " + power(4,8))  Console.println  Console.println("power(5,0) = " + power(5,0))  Console.println("power(5,1) = " + power(5,1))  Console.println("power(5,2) = " + power(5,2))  Console.println("power(5,3) = " + power(5,3))  Console.println("power(5,4) = " + power(5,4))  Console.println("power(5,5) = " + power(5,5))  Console.println("power(5,6) = " + power(5,6))  Console.println("power(5,7) = " + power(5,7))  Console.println("power(5,8) = " + power(5,8))  Console.println}//############################################################################object Test {  def main(args: Array[String]): Unit = {    M0    M1    M2    M3    M4    M5    M6    M7    M8    M9    MA    MB    MC    MD    ME    MF    MG    MH    ()  }}//############################################################################

⌨️ 快捷键说明

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