OCaml表达式类型问题
我正在尝试创建一个 OCaml 函数,将字符串中 'a 的数量添加到给定的参数中。
let rec count_l_in_word (initial : int) (word : string) : int=
if String.length word = 0 then initial else
if word.[0] = 'a' then
count_l_in_word initial+1 (Str.string_after word 1)
else count_l_in_word initial (Str.string_after word 1)
我在第 4 行收到错误消息“此表达式的类型为字符串 ->” int 但在这里与 int' 类型一起使用。我不知道为什么它期望表达式 'count_l_in_word initial+1' 是一个 int 。它确实应该期望整行 'count_l_in_word initial+1 (Str.string_after word 1)' 是一个 int 。
谁能帮忙解决这个问题
I am trying to make an OCaml function that addsthe number of 'a's in a string to a given argument.
let rec count_l_in_word (initial : int) (word : string) : int=
if String.length word = 0 then initial else
if word.[0] = 'a' then
count_l_in_word initial+1 (Str.string_after word 1)
else count_l_in_word initial (Str.string_after word 1)
I get an error on line 4 saying 'This expression has type string -> int but is here used with type int'. I am not sure why it expects the expression 'count_l_in_word initial+1' to be an int. It should really expect the whole line 'count_l_in_word initial+1 (Str.string_after word 1)' to be an int.
Can anyone help with this
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
被解析为
所以你需要添加一些括号:
is parsed as
so you need to add some parens: