Ho studiato scala per la scorsa settimana circa e le ideologie ad essa associate e la programmazione funzionale in generale. Come previsto, il passaggio dalla programmazione imperativa a quella funzionale non è così facile come speravo. Ad esempio, ho convertito un esercizio di programmazione che ho fatto in Java in Scala. Quello che ho scoperto è che per me è quasi impossibile passare da variabili mutabili allo stile Scala di valori immutabili.
Per le persone TL; DR, la mia domanda principale è: come si diminuisce l'utilizzo di var in un programma funzionale? Per motivi di utilizzo, fornirò del codice di esempio:
import scala.io._
object Bowling {
def main(args: Array[String]): Unit = {
val input = Source.fromFile("bowling.in").getLines
for(testCase <- input) {
val numberOfRows = augmentString(testCase).toInt
var index = 0
var a = 1
var sum = 0
while(index < numberOfRows) {
sum += a
a += 4
index += 1
}
println(sum)
}
}
}
EDIT: Accetto la risposta di Karl per la sua concisione, anche se apprezzo molto l'esempio di codice di Ptharien e la spiegazione di Doval dei concetti funzionali nel suo insieme.