Hi Takayuki, Just thought I'd mention another approach to a variadic zipWith, this one using type families:
http://typesandkinds.wordpress.com/2012/11/26/variable-arity-zipwith/ The current lack of overlap in type families makes things a bit more complicated, but it can be solved using the upcoming overlapping type families. Cheers, Pedro On Sat, Dec 8, 2012 at 3:27 PM, Takayuki Muranushi <[email protected]>wrote: > Continued discussion from > > https://groups.google.com/d/topic/haskell-cafe/-e-xaCEbd-w/discussion > https://groups.google.com/d/topic/haskell-cafe/kM_-NvXAcx8/discussion > > Thank you for all the answeres and thinkings; > > > Here's zipWithN for general Zip functors: [1] . This, together with > [2] may constitute a small hackage. A modification from Wren's idea to > [1] is the use of fmap instead of repeat. > > I'm wondering if there are any laws for Zip functors. I first thought > that there are similarity between Zips and Applicatives, as [3] states > > > instance Applicative f => Zip f where > > zip = liftA2 (,) > > However, my intuition is that zipping two arrays should result in an > array of size of the same order as two, giving rise to a Zip functor > law candidate: > > zipWith const xs $ zipWith const xs ys == zipWith const xs ys > > which is violated by the above statement "zip = liftA2 (,)" . > > > > > [1] > https://github.com/nushio3/practice/blob/master/variable-arity/ZipWithN-2.hs > [2] > https://github.com/nushio3/practice/blob/master/free-objects/zipf-12.hs > [3] > http://hackage.haskell.org/packages/archive/TypeCompose/0.9.7/doc/html/Data-Zip.html > > > > > -- > Takayuki MURANUSHI > The Hakubi Center for Advanced Research, Kyoto University > http://www.hakubi.kyoto-u.ac.jp/02_mem/h22/muranushi.html > > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
