<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi</div><div><br></div><div>In the Oberon language definition you find:</div><div>
                
        
        
                <div class="page" title="Page 16">
                        <div class="layoutArea">
                                <div class="column">
                                        <p><span style="font-size: 10.000000pt; font-family: 'ArialMT'">type = qualident | ArrayType | RecordType | PointerType | ProcedureType.</span></p><p><span style="font-size: 10.000000pt; font-family: 'ArialMT'">ArrayType = ARRAY length {"," length} OF type.<br>
</span></p>
                                </div>
                        </div>
                </div><div>If you wonder how the compiler implements "type", recursion seems quite straightforward...</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">br, Jörg</div></div><div><br>Am 05.09.2016 um 11:48 schrieb Lars <<a href="mailto:noreply@z505.com">noreply@z505.com</a>>:<br><br></div><blockquote type="cite"><div><span>On Wed, July 27, 2016 3:26 pm, Paul Reed wrote:</span><br><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>You've come across a nasty implementation issue - if you use CASE to</span><br></blockquote><blockquote type="cite"><span>temporarily change the type of a parameter, it will temporarily change</span><br></blockquote><blockquote type="cite"><span>the definition of the procedure too; so the recursive calls are</span><br></blockquote><span></span><br><span></span><br><span>I've always wondered if recursion, is a trick, and overrated (i.e. lisp)</span><br><span>and should be avoided, or embraced. It is certainly powerful but creates,</span><br><span>I find, confusing code. Dijkstra was skeptical of recursion at times, and</span><br><span>proud of it at other times.</span><br><span></span><br><span>I for one don't find all the tricks up Haskell or Lisps sleeve when using</span><br><span>recursion to be more readable code, than say, non recursive code that</span><br><span>avoids recursion as if it is a nasty trick...</span><br><span></span><br><span>I'm wondering, if recursion is highly over rated and should be used in</span><br><span>moderation, rather than embracing it like in functional languages... Maybe</span><br><span>super intelligent humans (clever) can understand all sorts of recursive</span><br><span>mind games, but should bone simple dumb readable programs contain</span><br><span>recursion riddled throughout the code everywhere? Or should it be avoided</span><br><span>and used in moderation?</span><br><span></span><br><span>I don't mean to claim the original poster of this email thread was abusing</span><br><span>recursion and riddling it throughout his code, as it was only a small</span><br><span>example. Rather I wanted to start a small discussion of people's opinion</span><br><span>on recursion and why everyone thinks it is so great when in fact often it</span><br><span>seems like a clever trick. It is certainly a different way of thinking</span><br><span>about a problem, but for humans, with our brain size.. is it worth abusing</span><br><span>recursion? Functional languages do not consider it abuse, but should it be</span><br><span>considered abuse?</span><br><span>--</span><br><span><a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems</span><br><span><a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a></span><br></div></blockquote></body></html>