在 OCaml 中将整数列表转换为字符串

Turning list of integers into string in OCaml

如何使用 fold 将整数列表(例如 [1;2;3])转换为单个字符串“123”?

现在,我想我在做:

let int_list_to_string (s : int list) : string =
  fold (fun s combine -> combine + .... ) ""  

或类似的东西,其中 .... 可能类似于 String.length (我在不同的折叠问题中使用它来计算字符串中的字符数)但我不知道这是否甚至是完全正确的。

谢谢!

我觉得你的基本布局很合适。许多事情需要解决。这里有一些:

  1. 您必须选择要使用的特定折叠函数,List.fold_leftList.fold_right

  2. 要折叠的函数有两个参数。一个是累积的结果,另一个是列表中的下一个输入。顺序取决于您使用 fold_left 还是 fold_right。您的代码草图有两个参数,但其中一个参数的名称可疑 s。这将与输入列表不同 sfun后面的名字是当时引入的新参数变量。

  3. 用于连接字符串的 OCaml 运算符是 ^,这是您应该在有 + 的地方使用的运算符(可能只是代码中的占位符)。

  4. 您需要在连接之前将每个 int 转换为字符串。有一个名为 string_of_int 的函数可以执行此操作。

  5. 您必须将折叠应用于列表。即,fold 有 3 个参数,但您在代码草图中只提供了 2 个参数。