[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Fibonacci & XSL

Subject: RE: Fibonacci & XSL
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 17 Dec 2002 14:00:50 -0000
xslt fibonacci
You can do it in Saxon 7.x as:

<xsl:function name="m:fibonacci" saxon:memo-function="yes">
<xsl:param name="n" as="xs:integer">
<xsl:result as="xs:integer" 
   select="if ($n=0) then 0
           else if ($n=1) then 1
           else m:fibonacci($n-1) + m:fibonacci($n-2)"/>
</xsl:function>

In XSLT 1.0 you can do by calling a recursive template starting with the
value 0,
calling itself with the value $param+1 until the required parameter
value is reached, each time supplying the values of the last two items
in the sequence as parameters.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 



> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Kasper Nielsen
> Sent: 17 December 2002 11:19
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  Fibonacci & XSL
> 
> 
> This is actually more a question of dynamic programming in 
> XSL. If you can't remember the function it is:
> 
> F0 = 0
> F1 = 1
> f(n)=f(n-1)+f(n-2) for n>=2
> 
> is it possible to make a template that calculates this in 
> linear time (I know it can be done in O(lg n) but linear is 
> enogh) in xsl? The straightforward recursive method for 
> calculating f(n) is clearly exponential in n.
> 
> If it is possible I would prefer an example using memoization 
> because I need it to a similar problem I have.
> 
> regards
>   Kasper
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.