0
我有一個列表let a = ["q0,x";"q1,y"];
,其類型爲string list
。拆分OCaml中的字符串列表
我想使它成爲[("q0","x");("q1","y")];
這是一個(string * string)
元組的列表。
我該怎麼做?
我有一個列表let a = ["q0,x";"q1,y"];
,其類型爲string list
。拆分OCaml中的字符串列表
我想使它成爲[("q0","x");("q1","y")];
這是一個(string * string)
元組的列表。
我該怎麼做?
您可以使用模塊Str和功能split
:
let split =
List.map (fun str ->
match Str.split (Str.regexp ",") str with
| a :: b :: _ -> a, b
| _ -> assert false (* should not happen *))
我不明白這一點。 – user1280282
你是否熟悉List.map函數?然後在這裏檢出ocaml標準庫:[link](http://caml.inria.fr/pub/docs/manual-ocaml/libref/index.html)。 基本上,列表中的每個元素將被拆分,其中「,」被找到並作爲列表返回,因此「q0,x」將變爲[q0; x]。模式匹配標識第一個和第二個元素,並檢查列表只有2個元素。當模式匹配時,返回元組 –
您應該嘗試從頭開始學習OCaml。檢查[ocaml-lang](http://ocaml-lang.org)你會發現一些非常好的教程的鏈接。 – cago