Например, предположим, у меня есть следующее
var lastSecurity = ""
def allSecurities = for {
security <- lastTrade.keySet.toList
lastSecurity = security
} yield security
На данный момент
lastSecurity = security
Создается впечатление, что создается новая переменная в области видимости, а не изменяется переменная, объявленная в первой строке кода.