<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 19, 2013 at 2:31 AM, Brent Yorgey <span dir="ltr"><<a href="mailto:byorgey@seas.upenn.edu" target="_blank">byorgey@seas.upenn.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id=":12u" style="overflow:hidden">The distinction is simply this: given a definition<br>
<br>
foo = ...<br>
<br>
does foo show up in the ..., i.e. on the right-hand-side of its own<br>
definition, or not? If foo shows up in its own definition, it is<br>
recursive. If not, it is not recursive. </div></blockquote></div><br><div class="gmail_extra">This isn't a satisfactory answer 'simply' (there's that word again!) because it makes a hash out of equational reasoning:<br>
<br></div><div class="gmail_extra">fix f = f (fix f) -- recursive<br></div><div class="gmail_extra">fix2 = fix -- no longer recursive!<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">thereby making the very concept itself ontologically suspect. Which of course, it shouldn't be.<br>
</div><div class="gmail_extra"><br></div>The
stackoverflow question asks about 'representation', which, for the purpose of discussion,
posits an actual graph-reduction machine.<br><br>The current answers give GHC Core in gory detail. If that works for you, great! <br><br>Otherwise, I recommend the self-guided tutorial on graph reduction in PJ & Lester:<br>
<br><a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/">http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/</a><br></div><div class="gmail_extra"><br clear="all">
<div>-- Kim-Ee</div>
</div></div>