如何查看函数是否已在OCaml中调用?

如何查看函数是否已在OCaml中调用?,ocaml,Ocaml,我试图在OCaml中的函数中保存一个值,以便下次调用该函数时可以访问该值。有什么方法可以做到这一点吗?你不能用函数的方式来实现,因为函数不是纯函数 您可以使用ref来存储所需的值,并在函数中对其进行变异 例如,此函数计算a+b+X,其中X每次调用该函数时增加1: 让我的_发挥作用= 让保存的_值=中的参考值0 乐趣a b-> 保存的值:=!保存的_值+1;(*增加值*) a+b+!保存值 let()=Printf.Printf“First:%d\n”(my_函数12)(*1+2+1==4*) l

我试图在OCaml中的函数中保存一个值,以便下次调用该函数时可以访问该值。有什么方法可以做到这一点吗?

你不能用函数的方式来实现,因为函数不是纯函数

您可以使用
ref
来存储所需的值,并在函数中对其进行变异

例如,此函数计算
a+b+X
,其中
X
每次调用该函数时增加1:

让我的_发挥作用=
让保存的_值=中的参考值0
乐趣a b->
保存的值:=!保存的_值+1;(*增加值*)
a+b+!保存值
let()=Printf.Printf“First:%d\n”(my_函数12)(*1+2+1==4*)
let()=Printf.Printf“秒:%d\n”(my_函数12)(*1+2+2==5*)

@LiviaSeiler不,你不能在做其他事情之前回来吗?这又有什么区别呢?@LiviaSeiler当然你可以在写入其他内容之前读取
保存的\u值(例如,写入临时变量),但在函数返回后,你永远无法执行任何操作。不要故意破坏你的问题。答案取决于问题的上下文。