gpt4 book ai didi

for-loop - OCaml - If 语句内的 For 循环

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

拥有 Java 和 C 背景,掌握 Ocaml 的一些概念非常有趣。其中之一是让一个/多个语句在 for 循环内运行。

let test_method (x:vector list)(vec:vector) =     if List.length x != 0 then          {a=0.;b=0.} (* Return a vector of 0,0 *)       else           for i = 0 to List.length x do                        let key =  {a=(List.nth x i).a;b=(List.nth x i).b}                 done;;

我得到的错误已经完成;;是一个意想不到的 token 。为什么会发生这种情况?即使我这样做也会发生这种情况

let test_method (x:vector list)(vec:vector) =     if List.length x != 0 then          {a=0.;b=0.} (* Return a vector of 0,0 *)       else           for i = 0 to List.length x do                        let key =  {a=(List.nth x i).a;b=(List.nth x i).b} in                        let value = vec_neg key;                done;;

其中 vec_neg 是一种可以很好地否定向量类型的方法。

任何帮助将不胜感激。

最佳答案

let 表达式必须有一个主体。 (即 let var = val in body)(模块顶层的 let 定义除外,它隐式使用模块的其余部分作为主体)let 创建一个位于主体内部范围内的本地绑定(bind)。如果你不使用它(即没有 body ),那么这样做有什么意义呢?另外,语言中的每个表达式都必须计算出一个值。 let 表达式的计算结果为主体的计算结果。这就是为什么它需要一个 body 。

关于for-loop - OCaml - If 语句内的 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1570362/

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