假设有 atype r = {A : int; B : string; C : int; D : string}
和 a 一些值:
let aOptional : int option = ...
let bOptional : string option = ...
let cOptional : int option = ...
let dOptional : string option = ...
怎么r optional
能从它们优雅地构造出来(没有嵌套的 case-stuff 等)?
顺便说一句,这是如何在 haskell 中完成的Control.Applicative
:
data R = R { a :: Integer, b :: String, c :: Integer, d :: String}
R <$> aOptional <*> bOptional <*> cOptional <*> dOptional :: Maybe R
在 fsharp 中寻找等效的东西。