Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » pfp » Aufgabe 1: Wissensfragen
Dies ist eine alte Version des Dokuments!
Aufgabe 6: Scala / Graphen faerben
a)
def getFreeColor: List[Color] => Color = c => { def helper : (List[Color], Int) => Color = { case (Nil,n) => n case (cs,n) => if(!cs.contains(n)) n else helper(cs,n+1) } helper(c,0) }
oder eleganter:
def getFreeColor: List[Color] => Color = l => (for(i <- List.range(0, l.length + 1 ) if !l.contains(i))yield i).head
b)
def colorGraph: List[Node] => List[Coloring] => List[Coloring] = { case Nil => cols => cols case n::nod => cols => colorGraph(nod)(nextFreeColor(cols)(n)::cols) }