将字符串递归地分为字符列表



我正在尝试将字符串递归地分为char列表。这是我必须遥不可及的:

let rec explode2 (s: string) =
  match s with 
  | "" -> []
  | s ->
    let newWord = s.[1..]
    let newArr = List.ofArray(newWord.ToCharArray())
    explode2 newWord
    newArr

我要朝正确的方向?

第一部分是正确的(用于返回列表而不是数组):

  match s with 
  | "" -> []

它需要在递归函数中是最终情况的空字符串。

对于第二部分,您需要:

  • 将第一个字符与字符串的其余部分分开。
  • 使用字符串的其余部分调用该功能。
  • 将第一个字符与返回的列表相连。

要连接到列表的元素,您可以使用::操作员:

c :: lst

您要到达那里,所以请继续。

最新更新