gpt4 book ai didi

ocaml - 如何在OCaml中保存和更改变量的值?

转载 作者:行者123 更新时间:2023-12-04 17:11:47 24 4
gpt4 key购买 nike

这可能是一个非常新手的问题,但我没有找到答案。
我需要存储一个列表,然后在同一指针下将其替换为另一个列表。

最佳答案

可以通过references完成:

let fact n =
let result = ref 1 in (* initialize an int ref *)
for i = 2 to n do
result := i * !result (* reassign an int ref *)
done;
!result

您不会经常看到引用,因为您可以在递归或高阶函数中使用不可变值来执行相同的操作:
let fact n =
let rec loop i acc =
if i > n then acc
else loop (i+1) (i*acc) in
loop 2 1

首选无副作用的解决方案,因为它们更易于推论和确保正确性。

关于ocaml - 如何在OCaml中保存和更改变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com