空白 (改行を含む) で区切られた浮動小数点値を含むテキスト ファイルを処理したいと考えています。任意の大きな入力で作業できるようにしたいのでSource.fromFile(...).mkString
、問題外です。次の値が要求されるたびにjava.util.Scanner
を呼び出す double のストリームにインスタンスをラップするのは比較的簡単だと思います。このようにして、命令的なアプローチに頼ることなく、ストリームを効率的に減らすことができました。私は次の行で何かを考えています:.nextDouble()
Scanner
val in = new Scanner(...)
val reducedData = wrapScanner(in).fold(...)
PS ここで「ストリーム」という用語が正しいかどうかはわかりませんが、特に Scala Streams について言及しているわけではありません。
PPS の存在はIterator/Stream.continually
知っていますが、どこで停止するかを伝える方法がわかりません (NoSuchElementException
ファイルの末尾に a を避けるため)。