标准 ML 编程/示例和练习
外观
< 标准 ML 编程
- 指出以下代码片段中的标识符、关键字和特殊常量。第二个
a
的值是多少?
val a = 5 val b = 9 val a = 2*a+b;
- 构造一个具有 4 个位置和 3 个组件的元组。
- t 的类型是什么?
fun f a = 2 val t = (true,f,f 1);
- 编写一个函数,对于参数 0、1 和 2 返回值 2,对于所有其他参数返回 3。
- 编写一个函数,对于所有负参数返回 -1,对于所有正参数返回 +1,对于参数 0 返回 0。
- 创建一个函数 min(a:int,b:int),它返回其 2 个参数中较小的一个。用 3 种不同的方式对参数值进行分离。使用笛卡尔参数模式、使用投影和使用局部声明。
(本节的解决方案在这里)
- 创建一个函数 power9(x),计算 x 的 9 次方。最好使用尽可能少的乘法。
- 计算 2 个正整数参数的最大公约数。
- 计算 mul(n,z)=n*z,不使用 * 运算符,对于 和
- 仅使用加法和递归计算 power2(n)。(提示:可以将平方函数重写为自然数的求和。)
(本节的解决方案在这里)