declare function fact ($n) { if $n=1 then 1 else $n*fact($n - 1) };
declare variable $x := fact(10);
declare function f ( $name, $gpa ) {
{ $name/firstname/text(),
$name/lastname/text()
}: {$gpa}
};
{
for $s in doc('data/cs.xml')//gradstudent
order by $s/gpa descending, $s//lastname
return f( $s/name, $s/gpa/text() ),
$x
}