query.go
func (iter Enumerator) Where(predicate Predicate) Enumerator {
	retval := make(chan interface{})
	go func() {
		for item := range iter {
			if predicate(item) {
				retval <- item
			}
		}
		close(retval)
	}()

	return retval
}
func (iter Enumerator) Where(predicate Predicate) Enumerator {
	retval := make(chan interface{})
	go func() {
		for item := range iter {
			if predicate(item) {
				retval <- item
			}
		}
		close(retval)
	}()

	return retval
}
func ( iter Enumerator ) Where ( predicate Predicate ) Enumerator { retval := make ( chan interface { } ) go func ( ) { for item := range iter { if predicate ( item ) { retval <- item } } close ( retval ) } ( ) return retval }
// Where iterates over a list and returns only the elements that satisfy a
// predicate.
Where iterates over a list and returns only the elements that satisfy a predicate .