2012-06-19 192 views
0

我有一個列表let a = ["q0,x";"q1,y"];,其類型爲string list拆分OCaml中的字符串列表

我想使它成爲[("q0","x");("q1","y")];這是一個(string * string)元組的列表。

我該怎麼做?

回答

3

您可以使用模塊Str和功能split

let split = 
    List.map (fun str -> 
     match Str.split (Str.regexp ",") str with 
     | a :: b :: _ -> a, b 
     | _ -> assert false (* should not happen *)) 
+0

我不明白這一點。 – user1280282

+0

你是否熟悉List.map函數?然後在這裏檢出ocaml標準庫:[link](http://caml.inria.fr/pub/docs/manual-ocaml/libref/index.html)。 基本上,列表中的每個元素將被拆分,其中「,」被找到並作爲列表返回,因此「q0,x」將變爲[q0; x]。模式匹配標識第一個和第二個元素,並檢查列表只有2個元素。當模式匹配時,返回元組 –

+0

您應該嘗試從頭開始學習OCaml。檢查[ocaml-lang](http://ocaml-lang.org)你會發現一些非常好的教程的鏈接。 – cago

相關問題