[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Re: Just the first 'x' elements within a for-each
Subject: [xsl] Re: Just the first 'x' elements within a for-each From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Mon, 17 Mar 2003 19:56:25 +0100 |
Hi Jeni, "Jeni Tennison" <jeni@xxxxxxxxxxxxxxxx> wrote in message news:192796966587.20030317174203@xxxxxxxxxxxxxxxxxxx > Hi Simon, > > > I've tried numerous connotations of for-each loops, recursive > > functions etc but for the life of me I can't seem to get something > > which will only print/process the first 'x' (in my case x is 2) > > elements and then bail out of the for-each or just simply ignore the > > remaining ones found. > > In declarative programming, you can't "bail out". Not true. This is possible if a recursively called template was used. position() <= $n would be the "stop criterion" of the recursion. It is also possible within an implementation of lazy evaluation. E.g. in Haskell Prelude the function foldr is defined as follows: foldr :: (a -> b -> b) -> b -> [a] -> b foldr f z [] = z foldr f z (x:xs) = f x (foldr f z xs) Let f is defined like this: f 0 y = 0 f x y = x * y Then foldr f 1 [1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10] (this is the definition of the product of all numbers in a list) will return the result 0 without ever going past the 4-th element of the list. In this way we could operate even on lists of infinite length. I have implemented a kind of lazy evaluation using FXSL and am currently playing with it. ===== 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] Just the first 'x' elemen, Jeni Tennison | Thread | RE: [xsl] Just the first 'x' elemen, Dunning, John |
[xsl] Integrating Multiple Styleshe, bix xslt | Date | RE: [xsl] Get and save Stylesheet o, Passin, Tom |
Month |