# [xquery-talk] query problem

Michael Kay mike at saxonica.com
Sat Nov 20 11:38:16 PST 2010

```First, if you expect your function to return a single integer, then it's
best to declare this:

declare function local:Match(\$X as xs:string*,\$Y as xs:string*) as
xs:integer { ...

That way, you might get better error messages if the implementation of
the function is wrong.

The reason your function returns a sequence of integers is that the
"return" clause of the FLWOR expression is executed once for each value
of \$tok, that is, once for each of the tokens in the input.

>I just want that this function verify if some word in "String1"
contains in "String2" so in this case it  must return 1

I think you can code the function as

if (tokenize(\$X) = tokenize(\$Y)) then 1 else 0

taking advantage of the fact that "=", given two sequences, returns true
if any pair of items from the two sequences are equal.

If you prefer to spell it out more clearly, you could write

if (some \$x in tokenize(\$X), \$y in tokenize(\$Y) satisfies \$x eq \$y) then
1 else 0

Any particular reason you want to return 1|0 from the function rather
than true|false?

Michael Kay
Saxonica

On 20/11/2010 11:07, Mohamed kharrat wrote:
> dear all,
> i want to create a function which return 1 or 0
> i wrote this:
> declare function local:Match(\$X as xs:string*,\$Y as xs:string*)
> {
>
>
> for \$tok in tokenize(\$X, "\s")
> (:for \$tok2 in tokenize(\$Y, "\s"):)
>
> return if (some \$l in tokenize(\$Y, "\s") satisfies \$l= \$tok(:contains
> (\$l,\$tok):)) then 1
> else 0
> };
> local:Match('Cata avion nat voiture fff' , 'avion moto voiture')
> this function return not only "1" or "0" but a sequence of  0 1 0 1 0
> how to fix that?
> i just want that this function verify if some word in "String1"
> contains in "String2" so in this case it  must return 1
> thank you
>
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://x-query.com/pipermail/talk/attachments/20101120/07bf0347/attachment.htm
```