2015-04-30 58 views

回答

3
let cl2s cl = String.concat "" (List.map (String.make 1) cl) 

(在这一点上我不知道你为什么要问这些问题,他们似乎没有在任何地方领导。你可以通过自己熟悉的身影答案了标准库)。

4

您可以创建一个长度等于列表长度的字符串,然后在列表中折叠列表,并使用计数器初始化列表中的内容...但是,因为OCaml 4.02,字符串类型开始向不变性方向移动(并且在4.06中变得不可变),您应该开始将字符串视为不可变的 数据结构。所以,我们试试另一种解决方案。还有就是Buffer模块是专门为字符串建筑使用:

# let buf = Buffer.create 16;; 
val buf : Buffer.t = <abstr> 
# List.iter (Buffer.add_char buf) ['a'; 'b'; 'c'];; 
- : unit =() 
# Buffer.contents buf;; 
- : string = "abc" 

,或作为功能:

let string_of_chars chars = 
    let buf = Buffer.create 16 in 
    List.iter (Buffer.add_char buf) chars; 
    Buffer.contents buf 
+0

(同意;我改变了标题) –