首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >程序结束时的语法错误

程序结束时的语法错误
EN

Stack Overflow用户
提问于 2018-03-15 05:10:29
回答 2查看 420关注 0票数 0

我正在试图编译这段代码,它在最后一行中返回一个语法错误:(知道原因吗?)

代码语言:javascript
运行
复制
let nth_index str c n = 
let i = 0 in 
    let rec loop n i=
    let j = String.index_from str i c in
        if n>1 then loop (n-1) j 
        else    
            j
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-15 05:22:36

最外层的let不需要匹配的in。它给出了最高级的定义。

然而,其他三个let确实需要一个匹配的in。而且你只有两个in

票数 3
EN

Stack Overflow用户

发布于 2018-03-15 14:06:35

因此,根据@Jeffrey的回复,你可以写:

代码语言:javascript
运行
复制
let nth_index str c n = 
    let rec loop n i =
        let j = String.index_from str i c in
        if n>1 then loop (n-1) j else j
    in loop n 0

但是看看你的算法,也许你想用倒数第二行写if n>1 then loop (n-1) (j+1) else j。如果是,请注意此方法可能引发异常,所以好的做法是将其命名为nth_index_exn

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49292004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档