xsl-list
[Top] [All Lists]

Re: [xsl] Use pure XPath to test a sequence for being a valid Fibonacci sequence

2007-01-31 14:38:02
Abel Braaksma wrote:
Michael Kay wrote:

$fib[1] = 0 and $fib[2] = 1 and
  every $i in 2 to count($fib) satisfies
    $fib[$i] = $fib[$i - 1] + $fib[$i - 2]

Aha! (erlebnis)

For completeness, I will add a slightly corrected version (I saw the light, thanks to Michael). The 'every' operator has lower precedence than 'and', requiring parenthesis (otherwise you will receive an error) and the '.. to ..' range should start with 3:

$fib[1] = 0 and $fib[2] = 1 and
   (every $i in 3 to count($fib) satisfies
        $fib[$i] = $fib[$i - 1] + $fib[$i - 2])

This returns true for example for the following Fibonacci sequence:
(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025)


Here's another version, which eases the expression a bit by removing the special cases:

every $i in 1 to count($fib) satisfies
      $fib[$i] = (0, $fib)[$i] + (0, 1, $fib)[$i]

-- Abel

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--