<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Well, SQL is a functional language too (if you ignore the various sublanguages for stored procedures). And I have seem many students struggle with it. They are used to assigning values in loops and the whole concept of SQL is alien to them. But in the end all experienced engineers master it without a problem. (Even though the % of people that can use GroupBy/Having, Window, Cube and outerjoins is tiny). At some point the understand that they *have* to learn, and that just does it.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 18 Jun 2015, at 13:39, Ihe Onwuka <<a href="mailto:ihe.onwuka@gmail.com" class="">ihe.onwuka@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Jun 18, 2015 at 6:23 AM, Ihe Onwuka <span dir="ltr" class=""><<a href="mailto:ihe.onwuka@gmail.com" target="_blank" class="">ihe.onwuka@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class="gmail_extra"><br class=""><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><span class=""><font color="#888888" class=""><div class=""><br class=""></div></font></span></div></blockquote></span><div class="">It's how it's presented to the experienced programmer that is the issue. My metaphor is that an XSLT processor converts an XML document to a stream of events which you have to write handlers for in the form of template rules. However that only covers XSLT's push paradigm and although I'd like to say push is all you need I don't think it's true, sometimes you have to pull. </div></div></div></div>
</blockquote></div><br class=""></div><div class="gmail_extra">I should have added that the processor has built in event handlers so you only need to write handlers for required functionality that is at variance with the default for that node type.</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">A non-programmer has no problem accepting this but it is alien to the experienced programmer for processing that  he has not explicitly controlled to occur and it screws them up because they like to step through code with debuggers. In fact that is often their prime modus operandi</div></div>
_______________________________________________<br class=""><a href="mailto:talk@x-query.com" class="">talk@x-query.com</a><br class="">http://x-query.com/mailman/listinfo/talk</div></blockquote></div><br class=""><div apple-content-edited="true" class="">
<div class="">С уважением,</div><div class="">Павел Велихов</div><div class=""><a href="mailto:pavel.velikhov@gmail.com" class="">pavel.velikhov@gmail.com</a></div>
</div>
<br class=""></div></body></html>