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