各レンズがMaybe
を返すネストされたレコードのレンズを持っている場合、どのようにしてそれらを合成することができますか? "トラバーサル"の何かがNothing
を返した場合、最終結果はNothing
ですか?「たぶん」のレンズをどのように構成するのですか?
data Client = Client
{
clientProperties :: Maybe Properties
, ...
}
data Properties = Properties
{
propSmtpConfig :: Maybe SmtpConfig
, ...
}
c :: Client
c = undefined
smtp = c ^. (properties . smtpConfig) -- How to make these lenses compose?
編集私は多くのオプションを試してみましたが、これは、私が思い付くことが最高です。何か清掃を探しています:
(client ^. properties) >>= (view smtpConfig)
ですね.html#v:_Just)。 –
ありがとう@Gurkenglas。これを回答として提出してください。これはまさに私が必要としていたものです。 –