Functional programming &引用;语法错误“;在编写OCaml函数时?

Functional programming &引用;语法错误“;在编写OCaml函数时?,functional-programming,ocaml,Functional Programming,Ocaml,我正在用OCaml编写一个函数,将x提升到y的幂。 我的代码是: #let rec pow x y = if y == 0 then 1 else if (y mod 2 = 0) then pow x y/2 * pow x y/2 else x * pow x y/2 * pow x y/2;; 当我尝试执行它时,第一行的语法出现了错误,但它没有告诉我是什么。当您编写代码时,是否键入了#?#只是OCaml REPL输出以提示输入的字符;它不是代码的一部分。你不应该打字 以下是您应该修复的一

我正在用OCaml编写一个函数,将x提升到y的幂。 我的代码是:

#let rec pow x y =
if y == 0 then 1 else
if (y mod 2 = 0) then pow x y/2 * pow x y/2 else
x * pow x y/2 * pow x y/2;;

当我尝试执行它时,第一行的语法出现了错误,但它没有告诉我是什么。

当您编写代码时,是否键入了
#
#
只是OCaml REPL输出以提示输入的字符;它不是代码的一部分。你不应该打字

以下是您应该修复的一些其他错误:

  • =
    是OCaml中的物理相等<代码>=是结构相等。虽然这两种方法对未装箱类型(如
    int
    )的作用相同,但最好是执行
    y=0
    。请注意,在表达式
    y mod 2=0
    中使用了建议的等式
    =
  • 您需要在
    y/2
    周围加括号
    pow x y/2
    解析为
    (pow x y)/2
    ,但您需要
    pow x(y/2)