我有一个返回int * int
的程序(示例用于说明): 有趣的程序(a,b)=(1,2)
我想做一些事情:
有趣的节目(a,b)
如果a = 0则为(1,2)
否则
val x,y =程序(a-1,b)
return(x-1,y)
基本上,我想操纵返回的元组,然后返回它的修改。
由于
答案 0 :(得分:1)
这几乎与您编写的一样,除了您的语法有点偏离:
fun program(a,b) =
if a = 0 then (1,2)
else
let val (x,y) = program(a-1,b) in
(x-1, y)
end
具体做法是:
fun f args = body
定义 - 您遗漏了=
。let val foo = bar in baz end
绑定。答案 1 :(得分:0)
我还建议,当您需要返回类型t : int * int
时,您可以至少 咖喱来自int * int = int -> int
的函数输入。如果您需要将其重新打开,则可以始终取消发送。我建议将函数编写为:
fun program a b =
if a = 0
then (1,2)
else
let
val (x,y) = program (a - 1) b
in
(x - 1, y)
end
此功能的类型为:int -> int -> (int * int)