Functional programming &引用;语法错误“;在编写OCaml函数时?
我正在用OCaml编写一个函数,将x提升到y的幂。 我的代码是: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输出以提示输入的字符;它不是代码的一部分。你不应该打字 以下是您应该修复的一
#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)