这是我遇到的错误,我不明白为什么:“错误:未绑定的记录字段标签长度” 不知道吗?
let rastavi str =
let sublist = ref [] in
let list = ref [] in
for i = ((str.length str)1) [down]to 0 do
if str.[i] =' ' then (str.[i] :: !sublist)
else (list := (!sublist:: !list)) sublist = []
done ;;
答案 0 :(得分:4)
您正在使用OO表示法来获取字符串的长度。 OCaml使用功能表示法。所以它看起来像这样:
String.length str
不喜欢这样:
str.length (* OO notation, not in OCaml *)
修改强>
一边评论:这个解决方案非常迫切需要解决这个问题。如果您正在尝试学习FP思维模式,那么您应该尝试以递归和不可变的方式进行思考。由于这看起来像家庭作业,很可能是你想要的功能性解决方案。
但是原始代码中还有一些其他问题:
你有两个表达式彼此相邻,两者之间没有任何内容。如果你想“做”两件事,你需要用分号;
分隔它们(但这是必要的风格)
您正在使用=
来比较两个值是否相等。如果要为引用分配值,则需要使用:=
。 (势不可挡的风格,再次。)