<div dir="ltr"><div>Seems to work for me:</div><div><br></div><div>$ ghci<br>GHCi, version 8.2.2: <a href="http://www.haskell.org/ghc/">http://www.haskell.org/ghc/</a>  :? for help<br>Loaded GHCi configuration from /Users/ivan/.ghci<br>Prelude> import Control.Applicative<br>Prelude Control.Applicative> let zAppend (ZipList xs) (ZipList ys) = ZipList (xs ++ drop (length xs) ys)<br>Prelude Control.Applicative> take 10 (getZipList (ZipList [1..4] `zAppend` ZipList [5..])) :: [Int]<br>[1,2,3,4,9,10,11,12,13,14]<br>Prelude Control.Applicative> take 10 (getZipList (ZipList [1..] `zAppend` ZipList [5..])) :: [Int]<br>[1,2,3,4,5,6,7,8,9,10]<br>Prelude Control.Applicative></div><div><br></div><div>(After all, the `length` call will never get evaluated.)</div><div><br></div><div>However, I do prefer your solution to avoid traversing the first list twice, so +0.5 from me.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 5 June 2018 at 13:36, 박신환 <span dir="ltr"><<a href="mailto:ndospark320@naver.com" target="_blank">ndospark320@naver.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:Gulim,sans-serif"><p><span style="font-family:courier new,serif">Current definion of (<|>) for ZipLists:</span><span></span></p><pre><span style="font-family:gulim,sans-serif"></span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#ZipList" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">ZipList</span></a><span style="font-family:courier new,serif"> </span><a name="m_-3188772927916380814_local-6989586621679319881"></a><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#local-6989586621679319881" target="_blank"><span class="m_-3188772927916380814hs-identifier" style="font-family:courier new,serif">xs</span></a><span style="font-family:courier new,serif"> </span><a name="m_-3188772927916380814_local-8214565720323792760"></a><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/GHC.Base.html#%3C%7C%3E" target="_blank"><span class="m_-3188772927916380814hs-operator" style="font-family:courier new,serif"><|></span></a><span style="font-family:courier new,serif"> </span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#ZipList" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">ZipList</span></a><span style="font-family:courier new,serif"> </span><a name="m_-3188772927916380814_local-6989586621679319882"></a><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#local-6989586621679319882" target="_blank"><span class="m_-3188772927916380814hs-identifier" style="font-family:courier new,serif">ys</span></a><span style="font-family:courier new,serif"> </span><span class="m_-3188772927916380814hs-glyph" style="font-family:courier new,serif">=</span><span style="font-family:courier new,serif"> </span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#ZipList" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">ZipList</span></a><span style="font-family:courier new,serif"> </span><span class="m_-3188772927916380814hs-special" style="font-family:courier new,serif">(</span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#local-6989586621679319881" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">xs</span></a><span style="font-family:courier new,serif"> </span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/GHC.Base.html#%2B%2B" target="_blank"><span class="m_-3188772927916380814hs-operator m_-3188772927916380814hs-var" style="font-family:courier new,serif">++</span></a><span style="font-family:courier new,serif"> </span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/GHC.List.html#drop" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">drop</span></a><span style="font-family:courier new,serif"> </span><span class="m_-3188772927916380814hs-special" style="font-family:courier new,serif">(</span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Data.Foldable.html#length" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">length</span></a><span style="font-family:courier new,serif"> </span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#local-6989586621679319881" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">xs</span></a><span class="m_-3188772927916380814hs-special" style="font-family:courier new,serif">)</span><span style="font-family:courier new,serif"> </span><a href="http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Applicative.html#local-6989586621679319882" target="_blank"><span class="m_-3188772927916380814hs-identifier m_-3188772927916380814hs-var" style="font-family:courier new,serif">ys</span></a><span class="m_-3188772927916380814hs-special" style="font-family:courier new,serif">)</span><span style="font-family:courier new,serif"><br><br>doesn't work if the left argument is infinite. It should be:<br><br>ZipList []     <|> ys             = ys<br>xs             <|> ZipList []     = xs<br>ZipList (x:xs) <|> ZipList (_:ys) = ZipList (x : (ZipList xs <|> ZipList ys))<br></span></pre></div></div><table style="display:none"><tbody><tr><td><img src="https://mail.naver.com/readReceipt/notify/?img=JqRCbHFTpz%2FYaqgZKrRZF4tlFx0opzMdM4ivFzk0FrtmpzJvKrt%2Fax%2BSM4k4FuIo%2BrkSKob5W4d5W4C5bX0q%2BzkR74FTWx%2FsWz0Sb4JZ16kqtzCCbrR0Wzm5WXiN.gif" border="0"></td></tr></tbody></table><br>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Ivan Lazar Miljenovic<br><a href="mailto:Ivan.Miljenovic@gmail.com" target="_blank">Ivan.Miljenovic@gmail.com</a><br><a href="http://IvanMiljenovic.wordpress.com" target="_blank">http://IvanMiljenovic.wordpress.com</a></div>
</div>