Stream の組み込み zip 関数は、入力ストリームのペアの最短で切り捨てられるように見えます。この機能を実装するにはどうすればよいですか:
def firstOrLongest[T]( a : Stream[ T ], b : Stream[ T ) : Stream[ T ]
// resulting stream should have the property that:
// while there are still elements of a, return (the corresponding element of) a
// else return (the corresponding element of) b.