Files : rc ->
Arg Path, Mask : String, 
    Result : &Array : String

Names = <> ..

Call List Rq 'Names'
Where Rq = Path '/' Mask

Do get Name from Names
 If Name, IS_DIRECTORY then
  Call Files Name Mask 'Result'
 Else
  Call F Name 'Result'
 ;
;

Return

/* * */

F Files ->
Arg Name : String, 
    Result : &Array : String

...

Return

/* * */

List = FilesIn ? ( N : 
                       ?(Names : List : String) .= N 
                 )