我使用OCaml中的Set模块创建字符串集。
我正在努力解决如何将给定字符串作为字符串集的所有元素的前缀。
我是否会使用Set.iter或Set.elements处于正确的位置?
答案 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"]