我正在尝试将字符串递归地分为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
您要到达那里,所以请继续。