Proposal: instance Alternative ZipList

Brent Yorgey byorgey at gmail.com
Mon Jul 20 14:37:02 UTC 2015


+1 from me, regardless of implementation.

On 4:18pm, Fri, Jul 17, 2015 Edward Kmett <ekmett at gmail.com> wrote:

> I'm more than open to switching to a more efficient solution.
>
> -Edward
>
> On Fri, Jul 17, 2015 at 5:16 PM, David Feuer <david.feuer at gmail.com>
> wrote:
>
>> The implementation could use some work. Something more like this, I think.
>>
>> (<|>) = foldr (\x k ys -> x : k (drop 1 ys)) id
>>
>> In pointless silliness, it's even
>>
>> foldr ((. (. (maybe ([]) snd . uncons))) . (.) . (:)) id
>> On Jul 17, 2015 2:15 PM, "Edward Kmett" <ekmett at gmail.com> wrote:
>>
>>> Er.. I obviously meant
>>>
>>> instance Alternative ZipList where
>>>    empty = ZipList []
>>>    ZipList xs <|> ZipList ys = ZipList (xs ++ drop (length xs) ys)
>>>
>>> sorry for any confusion.
>>>
>>> On Fri, Jul 17, 2015 at 11:37 AM, Edward Kmett <ekmett at gmail.com> wrote:
>>>
>>>> The ZipList data type admits one legal Alternative instance
>>>>
>>>> instance Alternative ZipList where
>>>>    pure = ZipList []
>>>>    ZipList xs <|> ZipList ys = ZipList (xs ++ drop (length xs) ys)
>>>>
>>>> The legality of this instance was first noted in
>>>> http://people.cs.kuleuven.be/~tom.schrijvers/Research/papers/ppdp2015.pdf
>>>>
>>>> I propose adding this instance, which acts like a generalized version
>>>> of the Alternative for Maybe, choosing with a left bias.
>>>>
>>>> Discussion Period: 2 weeks
>>>>
>>>> -Edward
>>>>
>>>
>>>
>>> _______________________________________________
>>> Libraries mailing list
>>> Libraries at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>
>>>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20150720/2b84549e/attachment.html>


More information about the Libraries mailing list