FP2 Flashcards
When would you use a enum and when woudl you use class instead ?
You should use an enum when you know how much case class you have in advance.
What is a sentinelle
La sentinelle est une valeur spéciale dans une structure de données, utilisée comme repère pour signaler la fin ou un état spécifique.
val notes = Array(75, 88, 92, 85, 0, 70, 68,-1) // -1 est la sentinelle
C’est quoi une variable de capture
Une variable de capture est une variable introduite dans un pattern matching (correspondance de motifs) pour capturer et stocker temporairement une valeur extraite d’une structure de données.
enum Context:
case Vide
case Cons(name: String, value: Int, tail: Context)
def printContext(context: Context): Unit = context match
case Context.Vide =>
println(“End of context.”)
case Context.Cons(name, value, tail) => // Variables de capture
println(s”Name: $name, Value: $value”)
printContext(tail)
Qunad on fait du pattenr mathching et que l’on veut dire que tous les autres cas retourne qqch comment peut on faire ?
Avec la syntaxe case _
Exemple:
def zipWith(l1: IntList, l2: IntList, op: (Int, Int) => Int): IntList =
(l1, l2) match
case (IntCons(x1, xs1), IntCons(x2, xs2)) =>
IntCons(op(x1, x2), zipWith(xs1, xs2, op))
case _ =>
IntNil