这个可能是愚蠢但我只是没有看到它。这是我的代码
let rec lister old fixed =
let paren = Str.regexp "(|)" in
match old with
[] -> []
| h::t -> if Str.string_match paren h 0
then iter t ((Str.split_delim paren h)@fixed)
else iter t (h::fixed)
;;
let stl string =
let r = Str.regexp " " in
let l = lister (Str.split r string) []
;;
错误在最后;;我得到了意想不到的标记“;;”。我尝试重做它有点像
let stl string =
let l = lister (Str.split (Str.regexp " ") string) []
;;
但仍然没有。我不认为列表功能会产生影响,但我还是把它包括在内。想法?
答案 0 :(得分:7)
你有一个不完整的let-in表达式:
let stl string =
let r = Str.regexp " " in
let l = lister (Str.split r s) []
试试这个:
let stl string =
let r = Str.regexp " " in
lister (Str.split r s) []
或者你可以做同等的事情:
let stl string =
let r = Str.regexp " " in
let l = lister (Str.split r s) [] in
l
查看OCaml documentation以获取更多信息。