ocaml中的语法错误

时间:2013-05-06 11:39:35

标签: ocaml

为什么以下代码有语法错误?我没找到原因。

let rec revStr stringa k e = 
if    k = e then ""
else (string_of_char stringa.[e])^
      (revStr stringa (e-1) k);;

字符串ake是输入,它应该在输出中将sub.string从整数e提供给整数k

2 个答案:

答案 0 :(得分:2)

此代码中没有语法错误。当我尝试它时,我得到“Unbound value:string_of_char”这是一个类型错误。语法错误后会出现类型错误,因为在解析后会发生键入。

我的猜测是你在这个函数之前有一个语法错误,比如遗忘的分号或遗忘的“in”。这些错误通常会在以后检测到。

答案 1 :(得分:2)

除了cygin指出的内容(参数似乎相反),revStr使用e较小值调用自身。但是您的描述听起来像e应该小于或等于k。那么你不想为e传递更大的值吗?否则我不明白为什么你会到达k

作为旁注,我想知道为什么子串函数被命名为revStr