Sono nuovo di Scala e la programmazione funzionale in generale. Quindi ecco il mio dubbio.Qual è il valore di ritorno appropriato quando il modello corrisponde a zero e vogliamo restituire Nil?
In una funzione con abbinamento di modelli, quando case Nil
corrisponde, e si desidera restituire Nil
, dovremmo restituire Nil
o il tipo di dati stesso? Ad esempio,
def drop[A](l: List[A], n: Int): List[A] = {
if (n <= 0) l
else l match {
case Nil => Nil
case Cons(_, t) => drop(t, n - 1)
}
}
Questa è una funzione che scende primi n
elementi di testa da un elenco concatenata. Qui, per il primo caso, dovrei restituire Nil
(forse come buona pratica) o dovrei restituire l
(perché quindi non dovremo costruire l'oggetto Nil
)?
Grazie! Ciò ha senso. – aa8y