firstlast.go
func DropLast(n int) Filter {
	return FilterFunc(func(arg Arg) error {
		r := newRing(n)
		for s := range arg.In {
			if r.full() {
				arg.Out <- r.popFront()
			}
			r.pushBack(s)
		}
		return nil
	})
}
func DropLast(n int) Filter {
	return FilterFunc(func(arg Arg) error {
		r := newRing(n)
		for s := range arg.In {
			if r.full() {
				arg.Out <- r.popFront()
			}
			r.pushBack(s)
		}
		return nil
	})
}
func DropLast ( n int ) Filter { return FilterFunc ( func ( arg Arg ) error { r := newRing ( n ) for s := range arg . In { if r . full ( ) { arg . Out <- r . popFront ( ) } r . pushBack ( s ) } return nil } ) }
// DropLast yields all items except for the last n items that it receives.
DropLast yields all items except for the last n items that it receives .