Scala para loop. Obtendo o índice em forma de consenso

Neste código eu quero incrementarindex para colocá-lo em cadayieldresultado.

var index=0

for(str <- splitToStrings(text) ) yield  {

  if (index != 0) index += 1               // but index is equal to `0` all the time

  new Word(str, UNKNOWN_FORM, index )
}

Por que eu não posso mudarindex&nbsp;? E qual a melhor maneira de implementar essa lógica, tentando ser conciso?