语言 ML 函数 val a’ * a’ * int -> bool

language ML function val a’ * a’ * int -> bool

使用 ML 语言

假设f(x,y,z)是一个函数。给出一个 f 的定义示例,它会导致 f 的参数具有以下类型:a’ * a’ * int.

示例代码

fun f1 (x,y,z) =  z<5 ;

val f1 = fn : 'a * 'b * int -> bool

如何将此值更改为 a’ * a’ * int -> bool ??

类型:

a’ * a’ * int -> bool 

表示该函数接受三个参数,第一个是 'a 类型,第二个也是 'a 类型,第三个是 int 类型。

您的定义:

fun f1 (x,y,z) =  z<5 ;

是正确的方法,因为它需要一个元组,现在为了限制 x,y 的类型相等,您可以这样写:

fun f1 (x :'a ,y :'a ,z) =  z<5 ;

如果您想避免显式类型注释,使 xy 成为同一类型的最简单方法是 return 它们都来自函数,但在不同的情况下.
真实示例:

- fun f (x,y,z) = if z < 0 then x else y;
val f = fn : 'a * 'a * int -> 'a

(由于问题描述中未提及 bool 结果类型,我假设这只是您 returning z < 5 的结果,而不是原始问题。)