OCaml - 为Set中的所有字符串添加前缀

时间:2017-05-03 12:53:59

标签: string functional-programming set ocaml

我使用OCaml中的Set模块创建字符串集。

我正在努力解决如何将给定字符串作为字符串集的所有元素的前缀。

我是否会使用Set.iter或Set.elements处于正确的位置?

1 个答案:

答案 0 :(得分:1)

Set.map正是您正在寻找的。它将给定函数应用于Set的所有元素,并返回包含结果的Set。

module StringSet = Set.Make(String);;

let new_set = 
  let set = StringSet.of_list ["a";"b";"c"] in
  StringSet.map (fun s -> "prefix_"^s) set (* This is the important line *)
;;

(* Checking the contents of `new_set` *)
StringSet.elements new_set;;

最后一个表达式将提供以下内容:

- : string list = ["prefix_a"; "prefix_b"; "prefix_c"]