Subject: [xsl] Re: Re: questions about XSLT philosophy: how much is too much? From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Thu, 20 Mar 2003 22:50:02 +0100 |
"Robert P. J. Day" <rpjday@xxxxxxxxxxxxxx> wrote in message news:Pine.LNX.4.44.0303200629520.3554-100000@xxxxxxx > On Thu, 20 Mar 2003, Dimitre Novatchev wrote: > > > How can a newcomer judge what is the "basic design" and what is "natural" > > for a language? > > > > The fact that you may be experiencing difficulties in understanding these > > does not mean that the language is used unnaturally. > > > > Or shall we start a witch hunt because we do not understand how someone is > > using the language and proclaim this use as "unnatural"? > > i didn't mean for this thread to take on a life of its own like > this, and i think you're overreacting to what i wrote. Didn't you have to tell something similar to other people today? > > i never claimed that certain usage of XSLT was "unnatural". what i > *said* was that, for someone not used to it and coming in with > the understanding that XSLT was being promoted as a *functional* > language, seeing it being used in what appears to be a non-functional > (i.e., procedural) way would *seem* not natural. that's all, > nothing more. Can you give examples of using XSLT in non-functional way on xsl-list? > > once upon a time, i programmed in prolog, and even taught the > language in a college course in AI. a lot of students had difficulty > getting their head around their first functional programming language > until they finally clicked on how functional programming worked -- > then things went smoothly. > > my only point from previous posts was that there is potential > confusion for newcomers like me when we're told up front that > XSLT is functional, then almost immediately see it being used > to solve problems in what appears to be decidedly non-functional > ways. > > one example of potential confusion is in tidwell's book, p. 3, > where he *first* writes, "XSLT is heavily influenced by the design > of functional programming languages ... functional programming > languages define programs as a series of functions ..." > > and yet, in the very next paragraph, he writes, "Instead of > looping, XSLT uses iteration and recursion." excuse me but, > where i grew up, iteration is just another word for looping. > and looping sure seems to have a procedural programming history. > and the potential for confusion for beginners increases when > they learn that XSLT does indeed have "if" statements, > case statements and loops. suddenly, this emphasis on > functional programming seems not so strong anymore. Even functions have to be built up from some promitive constructs. If you agree that Haskell is a functional language, there one will find: if ... then ... else... case an iterate() function some xxxWhile() and xxxUntil() functions Ther's even "do" :o) The functions mentioned above are from the Standard Haskell Prelude. > > finally, not to beat this to death, since i read that it's > coming in XSLT 2.0, but i was amused to see how one finds, > say, the largest value among sibling nodes, which as i recall, > involved comparing to all nodes along the preceding-sibling:: > and following-sibling:: axis, yes? > > when i saw that, my first reaction was, why is there no max() > function? i mean, given that XSLT was promoted as being > functional, it struck me as ironic that the one thing that > would have made this solution easy -- a max() function -- > wasn't there. Why should a max() function be provided? In a functional languge only a few functions need be provided as primitives (not defined by other functions). Again in Haskell the max() function is not provided as a primitive function of the language and one can see that it is defined as: maximum :: Ord a => [a] -> a maximum = foldl1 max Where max() is also a non-primitive function: max x y | x <= y = y | otherwise = x Exactly in the same way, it is up to the XSLT programmer to define their implementation of max or maximum -- this is not difficult. > > anyway, i didn't mean for this observation to become such > an issue. It is an issue, because it is not correct. ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: questions about XSLT , Robert P. J. Day | Thread | RE: [xsl] Re: Re: questions about X, bryan |
Re: [xsl] Looping through attribute, Karl Stubsjoen | Date | Re: [xsl] How to Process when Row d, Imrran Wahid |
Month |