我有一个分隔的数据字符串,例如
a~b~c~d~e~f~g~h~i~j~k~l~...
dog~cat~fish~parrot~mother~father~child~grandparent~...
hello~hi~greetings~yo
我想将数据加载到类型记录的数组/序列中
type myType {
first: string;
second: string;
third: string;
fourth:string;
}
所以我最终会在数组/序列中得到 3 个对象。我一直在搞乱 for 循环来做到这一点,但感觉非常必要。我将如何使用功能性习语来实现这一目标?
编辑:我应该澄清分隔数据的长度可能是可变的,尽管分隔项的数量应该始终是 4 的倍数。因此,每次迭代时,我希望剥离 4 条输入数据,将它们加载到输入所有数据后,返回一个数组/序列。
编辑2:所以我最终得到了这样的东西
let createValues(data: string) =
let splitValues(valueString) =
let rec splitData acc = function
| a :: b :: c :: d :: xs -> splitData ({ first=a; second=b; third=c; fourth=d } :: acc) xs
| [] -> acc
| _ -> failwith "uneven data"
splitData [] valueString
splitValues (data.Split [|'~'|] |> Array.toList)
谢谢