在 OCaml 中制作递归函数
Making recursive function in OCaml
我想制作一个递归函数,对两个值之间的整数求和。我在做:
let rec sum_between x y =
if x>y then sum_between y x else
if x=y then x else x + sum_between x+1 y ;;
但我收到错误消息:此表达式的类型为 int -> int
但表达式应为 int
类型
我做错了什么?
函数应用在OCaml中具有高优先级。当表达式是函数的参数时,您需要用括号括起来。
您的代码
sum_between x+1 y
解析如下:
(sum_between x) + (1 y)
你需要括号:
sum_between (x + 1) y
(与 Edgar Aroutiounian 的答案相同,但我希望提供更多有用的细节。)
我想制作一个递归函数,对两个值之间的整数求和。我在做:
let rec sum_between x y =
if x>y then sum_between y x else
if x=y then x else x + sum_between x+1 y ;;
但我收到错误消息:此表达式的类型为 int -> int 但表达式应为 int
类型我做错了什么?
函数应用在OCaml中具有高优先级。当表达式是函数的参数时,您需要用括号括起来。
您的代码
sum_between x+1 y
解析如下:
(sum_between x) + (1 y)
你需要括号:
sum_between (x + 1) y
(与 Edgar Aroutiounian 的答案相同,但我希望提供更多有用的细节。)