如何在Ocaml中反转数组

如何在Ocaml中反转数组,ocaml,Ocaml,所以我正在编写一个代码来在OCaml中反转数组,但我不知道为什么它不起作用。它给我带来语法错误 数组。(i)您缺少数组和之间的() 其他语法问题: 您需要在let之后的中输入(模块最外层除外) 两个赋值之间需要分号; 您缺少数组和之间的() 其他语法问题: 您需要在let之后的中输入(模块最外层除外) 两个赋值之间需要分号; 对不起,您有很多小错误。我看到的下一个错误是您在let之后的中缺少。两个作业表达式之间需要一个分号。我假设这是一个作业。因此,您希望了解OCaml,而不仅仅是让某人为您

所以我正在编写一个代码来在OCaml中反转数组,但我不知道为什么它不起作用。它给我带来语法错误


数组。(i)您缺少
数组
之间的

其他语法问题:

  • 您需要在
    let
    之后的
    中输入
    (模块最外层除外)

  • 两个赋值之间需要分号


您缺少
数组
之间的

其他语法问题:

  • 您需要在
    let
    之后的
    中输入
    (模块最外层除外)

  • 两个赋值之间需要分号


对不起,您有很多小错误。我看到的下一个错误是您在
let
之后的
中缺少
。两个作业表达式之间需要一个分号。我假设这是一个作业。因此,您希望了解OCaml,而不仅仅是让某人为您编写作业。如果您阅读了
让。。。在
表达式中,应该很明显什么需要修复。我自己做的,我知道let和in的意思以及它是如何工作的,但我真的不知道这里出了什么问题。我也搜索过web,但代码对我来说似乎还可以。@JeffreyScofield已经提到:
let
中必须始终后跟
,除了在e最外层。您在赋值之间缺少一个分号。第3行和第4行我没有意识到我使用了两个let语句,我只查看了第一个。现在它可以工作了。谢谢!您有很多小错误,对不起。下一个我看到的是您在
let
之后的
中缺少
。您需要在这两个语句之间使用分号Igment表达式。我假设这是一项作业。所以你想了解OCaml,而不仅仅是让某人为你编写作业。如果你阅读了
let…in
表达式,应该很明显什么需要修复。我是一个人做的,我知道let和in的意思以及它是如何工作的,但我真的看不到什么这里是错误的。我也搜索过网络,但代码对我来说似乎还可以。@JeffreyScofield已经提到:
let
必须在
中后跟
,除了最外层。在赋值之间缺少分号。第3行和第4行我还没有意识到我使用了两个let语句,我只看了第一个。现在谢谢!既然你修改了数组,我强烈建议你不要返回它。实际上,使用该函数的代码读者可能会认为原始数组保持不变。很好,谢谢。我认为你需要将行“for I=0 to(len/2)do”替换为“for I=0 to(len/2-1)do”由于您修改了数组,我强烈建议您不要返回它。按原样,使用该函数的代码读者可能会认为原始数组保持不变。好的,谢谢。我认为您需要将行“for I=0 to(len/2)do”替换为“for I=0 to(len/2-1)do”
let reverse array = let len=Array.length array in
        for i=0 to (len/2) do 
            let temp = array.(i)
            array.(i) <- array(len-i-1)
            array(len-i-1) <- temp          
        done;
        array;;
let reverse array = let len=Array.length array in
        for i=0 to (len/2) do 
            let temp = array.(i) in
            array.(i) <- array.(len-i-1);
            array.(len-i-1) <- temp         
        done;
        array;;