<div dir="ltr"><pre style="top: -99px;">take 3 $ many $ Just 1<br><br><font face="sans-serif">doesn't type check. Did you mean this?</font><br><br>take 3 <$> (many $ Just 1)</pre><pre style="top: -99px;"><font face="sans-serif">I think this may have something to do with t<span style="font-size:13px">he </span></font><span style="font-family:sans-serif;font-size:13px">default definition of many in the definition of </span><a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#Alternative" style="font-family:sans-serif;font-size:13px">Alternative</a><span style="font-family:sans-serif;font-size:13px">:</span><br></pre><div><pre><span class="inbox-inbox-hs-identifier" style="color:rgb(7,54,66)">many</span> <span class="inbox-inbox-hs-glyph" style="color:rgb(220,50,47)">::</span> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395956" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-type" style="color:rgb(95,95,175)">f</span></a> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395960" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-type" style="color:rgb(95,95,175)">a</span></a> <span class="inbox-inbox-hs-glyph" style="color:rgb(220,50,47)">-></span> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395956" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-type" style="color:rgb(95,95,175)">f</span></a> <span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">[</span><a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395960" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-type" style="color:rgb(95,95,175)">a</span></a><span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">]</span>
<a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#many" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier" style="color:rgb(7,54,66)">many</span></a> <a></a><a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395964" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier" style="color:rgb(7,54,66)">v</span></a> <span class="inbox-inbox-hs-glyph" style="color:rgb(220,50,47)">=</span> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395965" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-var" style="color:rgb(7,54,66)">many_v</span></a>
<a></a>  <span class="inbox-inbox-hs-keyword" style="color:rgb(175,0,95)">where</span>
<a></a>    <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395965" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier" style="color:rgb(7,54,66)">many_v</span></a> <span class="inbox-inbox-hs-glyph" style="color:rgb(220,50,47)">=</span> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395966" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-var" style="color:rgb(7,54,66)">some_v</span></a> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#%3C%7C%3E" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-operator inbox-inbox-hs-var" style="color:rgb(211,54,130)"><|></span></a> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#pure" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-var" style="color:rgb(7,54,66)">pure</span></a> <span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">[</span><span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">]</span>
<a></a>    <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395966" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier" style="color:rgb(7,54,66)">some_v</span></a> <span class="inbox-inbox-hs-glyph" style="color:rgb(220,50,47)">=</span> <span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">(</span><a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#fmap" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-var" style="color:rgb(7,54,66)">fmap</span></a> <span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">(</span><span class="inbox-inbox-hs-glyph" style="color:rgb(220,50,47)">:</span><span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">)</span> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395964" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-var" style="color:rgb(7,54,66)">v</span></a><span class="inbox-inbox-hs-special" style="color:rgb(220,50,47)">)</span> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#%3C%2A%3E" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-operator inbox-inbox-hs-var" style="color:rgb(211,54,130)"><*></span></a> <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.Base.html#local-1627395965" class="inbox-inbox-" style="text-decoration:none;border-bottom:1px solid rgb(238,232,213)"><span class="inbox-inbox-hs-identifier inbox-inbox-hs-var" style="color:rgb(7,54,66)">many_v</span></a>
</pre>many_v and some_v are mutually recursive functions, and it may be that this prevents the thunks from being made available to take in some way. I'm really not sure though, this is just an idea about why this is not quite the same as (take $ repeat 1)</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 29, 2016 at 3:51 PM Corentin Dupont <<a href="mailto:corentin.dupont@gmail.com">corentin.dupont@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div><div><div><div><div><div><div>Hi guys,<br></div>I'm playing with the mysterious "some" and "many" from Control.Applicative.<br></div>If I try: <br><br><span style="font-family:monospace,monospace">many $ Just 1<br><br></span></div><span style="font-family:monospace,monospace"><font face="arial,helvetica,sans-serif">It just loops, I understand why:<br><a href="http://stackoverflow.com/questions/18108608/what-are-alternatives-some-and-many-useful-for" target="_blank">http://stackoverflow.com/questions/18108608/what-are-alternatives-some-and-many-useful-for</a><br></font></span></div></div></div></div></div></div></div></div></div><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div><div><div><span style="font-family:monospace,monospace"><font face="arial,helvetica,sans-serif">It seems that some and many are usually used in a context where something is consumed, and can be depleted, so the loop ends.<br><br></font></span></div></div></div></div></div></div></div></div><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div><div><span style="font-family:monospace,monospace"><font face="arial,helvetica,sans-serif">But why doesn't this terminates?<br><br></font></span></div></div></div></div></div></div></div><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div><span style="font-family:monospace,monospace">take 3 $ many $ Just 1<br></span><span style="font-family:arial,helvetica,sans-serif"><br></span></div></div></div></div></div></div><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><span style="font-family:arial,helvetica,sans-serif">It's a recursive call, but the construction of the result should be lazy...<span><font color="#888888"><span><font color="#888888"><br></font></span></font></span></span><span><font color="#888888"><span></span></font></span><br></div></div></div></div></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>