1 declare namespace fun = 'have.more.fun';
3 declare function fun:closure($input as node()*, $result as node()*) as node()*
5 let $current := $input/preceding-sibling::bidder[position()=1 and number(increase) <= 10]
6 let $new := $current except $result
7 let $all := ($result,$new)
11 then ($new, fun:closure($new,$all))
15 doc()//bidder[number(increase) <= 10 and (preceding-sibling::bidder[position()=1 and number(increase) > 10] or fun:closure(.,())/preceding-sibling::bidder[position()=1 and number(increase) > 10])]