1
假設我有一個功能,如:得到任何非錯誤元素的遞延OCaml中/異步
query_server : Server.t -> string Or_error.t Deferred.t
然後我產生遞延查詢列表:
let queries : string Or_error.t Deferred.t list = List.map servers ~f:query_server
如何得到第一個查詢不失敗的結果(否則有一些錯誤)。基本上,我想要一個功能,如:
any_non_error : 'a Or_error.t Deferred.t list -> 'a Or_error.t
此外,我不知道如何以某種方式聚合錯誤。也許我的功能需要一個額外的參數,如Error.t -> Error.t -> Error.t
還是有標準的方法來組合錯誤?