为什么下面的代码有语法错误?我没有找出原因。
let rec revStr stringa k e =
if k = e then ""
else (string_of_char stringa.[e])^
(revStr stringa (e-1) k);;
string a
, k
,e
是输入,它应该在输出中给出sub.string
从 integere
到 integer 的值k
。
为什么下面的代码有语法错误?我没有找出原因。
let rec revStr stringa k e =
if k = e then ""
else (string_of_char stringa.[e])^
(revStr stringa (e-1) k);;
string a
, k
,e
是输入,它应该在输出中给出sub.string
从 integere
到 integer 的值k
。
除了 cygin 指出的(参数似乎颠倒了)之外,还revStr
用较小的值调用自身e
。但是您的描述听起来e
应该是小于或等于k
。那么你不想为 传递一个更大的值e
吗?否则我不明白你为什么会到达k
。
作为旁注,我想知道为什么将子字符串函数命名为revStr
.
此代码中没有语法错误。当我尝试它时,我得到“未绑定值:string_of_char”,这是一个类型错误。类型错误出现在语法错误之后,因为类型是在解析之后发生的。
我的猜测是您在此函数之前有语法错误,例如忘记了分号或忘记了“in”。这些类型的错误通常在很久以后才被发现。