StringBuiler是一个可变对象,F#鼓励尽可能多地使用不变性.所以应该使用转换而不是变异.在F#中构建字符串时,这是否适用于StringBuilder?有一个F#immutable替代它吗?如果是这样,这种替代方案是否有效?
F#对我来说并不容易.下面这段代码应该是一个列表.我不知道问题是什么.请帮忙.
let chunk items chunkSize =
let folder = fun state x ->
match state with (reversedResult, reversedChunk) ->
if reversedChunk.Length < chunkSize then
(reversedResult, x::reversedChunk)
else
((reversedChunk |> List.rev)::reversedResult, [x])
let alsmostDone = items |> List.fold folder ([], [])
match alsmostDone with
| (reversedResult, []) -> reversedResult |> List.rev
| (reversedResult, lastReversedChunk) -> (lastReversedChunk |> List.rev)::reversedResult |> List.rev
Run Code Online (Sandbox Code Playgroud)
