Я пытаюсь перейти от F # к Scala.В F # мы можем легко создать последовательность с выражением вычисления или монадой.Например:
let myseq = seq {
let mutableList = List()
for i = 0 to 100 do
mutableList.append(i)
yield sum(mutableList)
}
myseq |> Seq.iter println
Я читал о scala Stream
, но я не уверен, как правильно его использовать, как в примере выше, который содержит некоторое состояние, постоянно обновляющееся во время генерации seq.
Другим примером может быть выполнение некоторой работы по инициализации и очистке в seq:
let myseq = seq {
let file = open(path)
while (x = read(file)) do
yield x
file.close() }
Можем ли мы сделать это в Scala?