[Haskell-cafe] lens and Maybe value

David Feuer david.feuer at gmail.com
Tue Dec 20 18:57:46 UTC 2022


Actually, a lens is overkill. Any traversal will do.

On Tue, Dec 20, 2022, 12:43 PM David Feuer <david.feuer at gmail.com> wrote:

> That's nice and clean, but it leaves a thunk inside (since the field is
> lazy). Is there a strict version of `over` that avoids this? We could write
> one thus:
>
> over' :: ALens s t a b -> (a -> b) -> s -> t
> over' l f = getSolo . cloneLens l (\old -> Solo $! f old)
>   where
>     getSolo (Solo x) = x
>
> On Tue, Dec 20, 2022, 11:33 AM Tom Ellis <
> tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk> wrote:
>
>> On Tue, Dec 20, 2022 at 05:25:35PM +0100, PICCA Frederic-Emmanuel wrote:
>> > > Please clarify your question. Your code doesn't compile, and I can't
>> tell
>> > > what it's supposed to do.
>> >
>> > replace a (Maybe a) value in a data using lens only if the new (Maybe
>> a) is a Just
>>
>> How about
>>
>>     over a (mb <|>)
>>
>> ?
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20221220/0dcc85dc/attachment.html>


More information about the Haskell-Cafe mailing list