Like all other expressions, FLWOR expressions can be composed. In the following examples, a FLWOR is nested in a function call, nested in a FLWOR, nested in an array constructor:
Example 137. Nested FLWORs
[ for $c in collection("captains") where exists(for $m in collection("movies") where some $moviecaptain in let $captain := $m.captain return typeswitch ($captain) case array return $captain() default return $captain satisfies $moviecaptain eq $c.name return $m) return $c.name ]
Result (run with Zorba): [ "James T. Kirk", "Jean-Luc Picard" ]