У меня вопрос об эффективности for-comprehensions в scala.
Этот следующий код занимает около 45 секунд для запуска, когда perm является списком около 550 элементов
perm = some list
for{
perm <- perms.withFilter(_.size > 0)
wordList = somefunction(perm) //expensive operation, wordlist is a list of strings
sentenceList = somefunction1(perm) //very expensive operation, sentenceList is a list of list of strings
word <- wordList
sentence <- sentenceList
} yield { word::sentence}
Когда я изменил следующий код на следующий, он запустил за 3 секунды с тем же списком Perm
perm = some list
for{
perm <- perms.withFilter(_.size > 0)
word <- somefunction(perm) //expensive operation
sentence <- somefunction1(perm) //very expensive operation
} yield { word::sentence}
Разница в производительности имеет отношение к ленивой оценке в Scala?