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)
 }