我正在尝试构建Result Builder累积Errors(在我的情况下,它们被命名Failures为我正在关注来自https://fsharpforfunandprofit.com/ 的一些代码)。Failure当理想情况下我更喜欢它返回Success所需值或Failure所有丢失/损坏值的列表时,它的当前实现返回第一次遇到。不幸的是,当前的实现有点冗长。
样板代码
module Rop
type RopResult<'TSuccess, 'TMessage> =
| Success of 'TSuccess * 'TMessage list
| Failure of 'TMessage list
/// create a Success with no messages
let succeed x =
Success (x,[])
/// create a Success with a message
let succeedWithMsg x msg =
Success (x,[msg])
/// create a Failure with a message
let fail msg =
Failure [msg]
/// A function that …Run Code Online (Sandbox Code Playgroud)