concepts/
efun/
SYNOPSIS
	mixed *filter_array(mixed *arr, string fun, object ob, mixed extra)
	mixed *filter_array(mixed *arr, closure cl, mixed extra)

DESCRIPTION
	Returns an array holding the items of arr filtered through
	ob->fun(element, extra) or the closure cl. The function fun in
	ob is called for each element in arr with that element as
	parameter. A second parameter extra is sent in each call if
	given. If ob->fun(arr[index], extra) returns 1 the element is
	included in the returned array.
	
	If arr is not an array, then 0 will be returned.
	
	The extra argument is optional. ob can also be a file_name. If
	ob is omitted, this_object() is default.

EXAMPLE
	int check_if_idle(object user) { return query_idle(user); }

	...

	object *idle_users;

	idle_users = filter_array(users(), "check_if_idle");
	/* equivalent but smaller and faster */
	idle_users = filter_array(users(), #'query_idle );

	Now idle_users contains all users that have been idle for more
	than 1 second.

SEE ALSO
	map_array(E)