意外的标记 ”;;” ocaml的

时间:2012-11-23 16:44:16

标签: regex string ocaml

这个可能是愚蠢但我只是没有看到它。这是我的代码

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) [] 
;;

但仍然没有。我不认为列表功能会产生影响,但我还是把它包括在内。想法?

1 个答案:

答案 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以获取更多信息。