gpt4 book ai didi

ocaml - ocaml 中阶乘函数的命令式版本有什么问题?

转载 作者:行者123 更新时间:2023-12-01 10:06:32 25 4
gpt4 key购买 nike

let impfac i = 
let l = ref i in
let result = ref 1 in
let k = ref 2 in
while !k < !l do
result := !result * !k
k:=!k+1
done;
!result

错误信息是:

let impfac i = 
let l = ref i in
let result = ref 1 in
let k = ref 2 in
while !k < !l do
result := !result * !k
k:=!k+1
done;
!result;;
Characters 121-123:
result := !result * !k
^^
Error: This expression is not a function; it cannot be applied
#

最佳答案

result := !result * !k
k:=!k+1

您在第一行末尾缺少一个分号。因此,它被读作:

result := !result * (!k k:=!k+1)

即它认为您正在尝试以 k:=!k+1 作为参数调用 !k

这也是为什么您的编辑器将带有 k := !k+1 的行缩进到比它上面的行更靠右的位置。这应该是语法有问题的第一个迹象。

关于ocaml - ocaml 中阶乘函数的命令式版本有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854331/

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