Syntax ML语法函数程序

Syntax ML语法函数程序,syntax,coding-style,ml,Syntax,Coding Style,Ml,可能的函数foo是什么,它有一个 ’a * ’a -> int 在ML中,即具有以下类型输出的函数,这似乎是个家庭作业,所以我给你们一个部分解决方案和一些提示。您需要的类型是a'a*'a->int,因此合适函数的框架可以是这样的(我假设您使用的是标准ML): ?需要满足两个要求:它必须包含一个强制x和y具有相同类型的表达式,并且必须返回一个整数。后者应该不难。对于前者,SML中有许多可能性,例如,将它们放在同一个列表中,或者从同一的分支返回它们,如果或case或handle如果x=y,则

可能的函数foo是什么,它有一个

’a * ’a -> int

在ML中,即具有以下类型输出的函数,这似乎是个家庭作业,所以我给你们一个部分解决方案和一些提示。您需要的类型是a
'a*'a->int
,因此合适函数的框架可以是这样的(我假设您使用的是标准ML):


需要满足两个要求:它必须包含一个强制
x
y
具有相同类型的表达式,并且必须返回一个整数。后者应该不难。对于前者,SML中有许多可能性,例如,将它们放在同一个列表中,或者从同一
的分支返回它们,如果
case
handle

如果x=y,则另外1个2
具有类型
'a*'a->int
@newacct,这取决于OP所谈论的ML。您的示例是OCaml,但标准ML中的等效代码将不会具有请求的类型。您好,是的,我知道ML的基本语法。问题与类型推断有关,输出必须是α×α形式→ int@AndreasRossberg你能帮我一下吗。我必须在UNIX命令提示符下运行它。完美答案。出于兴趣,有一件事我很好奇。您说过约束
x
y
类型的“可能性很多”。但就我的一生而言,除了将它们传递给同一个函数,或者将它们放在同一个数据结构中之外,我想不出其他方法。你能吗?@NickBarnes,我有点搞不懂你在问什么,因为我似乎已经在答案中列出了我能想到的所有问题了?不清楚你的列表是否应该详尽无遗。我只是想看看你是否还有更多,因为我几乎忘记了语言的大部分内容(可变类型、循环、函子,甚至异常处理…)。现在我想了想,虽然
如果
case
只是函数,但是
句柄
似乎属于不同的类别。@NickBarnes,啊,好的,不,这不是详尽的,可能还有其他方法。实际上,引用是另一个与数据结构阵营有些不同的例子。您还可以以各种方式使用异常和数据类型构造函数,尽管这相当于使用间接类型注释。
fun foo(x, y) = ???