在桌面编写一个 scala 文件 Test1.scala,采用高阶函数实现两个整型 Int 之 间的加、减、乘、取整操作的计算器: (使用别的方法不得分) 1、定义一个高阶函数 calculator(),输入参数包括整型变量 x,整型变量 y,函 数 fun() 2、函数 fun 可以替换成以下匿名函数:加法函数 add,减法函数 minus,乘法函 数 multiply,除法取整函数 division 3、分别用 r1、r2、r3、r4 来保存结果,r1=calculator(10,3,add), r2=calculator(10,3, minus)、r3=calculator(10,3, multiply)、 r4=calculator(10,3, division),逐行打印 r1、r2、r3、r4
时间: 2024-02-04 11:03:16 浏览: 69
好的,这是您的问题:
```scala
// Test1.scala
object Test1 {
def main(args: Array[String]): Unit = {
val r1 = calculator(10, 3, add)
val r2 = calculator(10, 3, minus)
val r3 = calculator(10, 3, multiply)
val r4 = calculator(10, 3, division)
println(r1)
println(r2)
println(r3)
println(r4)
}
def calculator(x: Int, y: Int, fun: (Int, Int) => Int): Int = {
fun(x, y)
}
val add: (Int, Int) => Int = (x: Int, y: Int) => x + y
val minus: (Int, Int) => Int = (x: Int, y: Int) => x - y
val multiply: (Int, Int) => Int = (x: Int, y: Int) => x * y
val division: (Int, Int) => Int = (x: Int, y: Int) => x / y
}
```
该程序定义了一个高阶函数 `calculator`,输入参数包括整型变量 `x`,整型变量 `y`,函数 `fun`。函数 `fun` 可以替换成以下匿名函数:加法函数 `add`,减法函数 `minus`,乘法函数 `multiply`,除法取整函数 `division`。分别用 `r1`、`r2`、`r3`、`r4` 来保存结果,`r1=calculator(10,3,add)`,`r2=calculator(10,3, minus)`,`r3=calculator(10,3, multiply)`,`r4=calculator(10,3, division)`,逐行打印 `r1`、`r2`、`r3`、`r4`。
您可以在命令行中执行以下命令来编译运行该程序:
```bash
scalac Test1.scala
scala Test1
```
输出结果为:
```
13
7
30
3
```
其中,`r1` 为 `10 + 3 = 13`,`r2` 为 `10 - 3 = 7`,`r3` 为 `10 * 3 = 30`,`r4` 为 `10 / 3 = 3`。
阅读全文