@is_subsequence(s1:string, s2:string)
@is_subsequence(s1:string, s2:string, cmp:fct)
@is_subsequence(t1:tab, t2:tab)
@is_subsequence(t1:tab, t2:tab, cmp:fct)

@is_subsequence is an overloaded function. See also the functions @is_suffix and @is_prefix.


@is_subsequence(s1:string, s2:string)

the function returns the index of the first occurrence of string s1 in string s2. A negative value is returned if s1 does not occurs in s2.


@is_subsequence(s1:string, s2:string, cmp:fct)

same as above but the argument cmp is used to compare the characters of the strings (represented as strings of only one element).


@is_subsequence(t1:tab, t2:tab)

the predicate returns the index of the first occurrence of the elements of t1 as a sub-sequence of the elements of t2. A negative value is returned if t2 does not appear as a subsequence of tab t2. For example

              @is_subsequence([], [1, 2, 3]) -> 0
       @is_subsequence([1, 2, 3], [1, 2, 3]) -> 0
             @is_subsequence([1], [1, 2, 3]) -> 0
             @is_subsequence([2], [1, 2, 3]) -> 1
             @is_subsequence([3], [1, 2, 3]) -> 2
       @is_subsequence([1, 2], [0, 1, 2, 3]) -> 1

@is_subsequence(t1:tab, t2:tab, cmp:fct)

same as the version above but the function cmp is used to compare the elements of the tabs.


See also Predicates @!=,    @&&,    @||,    @<=,    @<,    @==,    @>=,    @>,    @approx,    @arch_darwin,    @arch_linux,    @arch_windows,    @between,    @empty,    @find,    @is_bool,    @is_defined,    @is_exec,    @is_fct,    @is_float,    @is_function,    @is_int,    @is_integer_indexed,    @is_list,    @is_map,    @is_nim,    @is_numeric,    @is_obj,    @is_obj_xxx,    @is_prefix,    @is_string,    @is_subsequence,    @is_suffix,    @is_symbol,    @is_undef,    @is_vector,    @member,    @occurs