package kapitel_02 /** * Beispiel aus * * - Algorithmen und Datenstrukturen für Dummies * - von Andreas Gogol-Döring und Thomas Letschert * - Verlag Wiley-VCH; Oktober 2019 * - Kapitel 2, Qualität von Algorithmen * * @author A. Gogol-Döring, Th. Letschert */ object AuD_02_02_LexicalFirst_App extends App { /* * Die Implementierung verwendet eine Liste als Eingabe. Das ist passend: Der Pseusocode ist nicht so zu verstehen, * dass die Wörter in einer Datenstruktur von Typ \textsl{Set} oder \textsl{Menge} übergeben werden, sondern * dass eine Menge von Wörtern in irgendeiner Datenstruktur übergeben wird, die mit einer for-Schleife * durchlaufen werden kann. * Der Vergleich von zwei Wörtern basiert in Scala auf auf dem von Java übernommenen String.compareTo * und hängt natürlich von der Länge der beteiligten Strings ab: Es wird Zeichen für * Zeichen verglichen. */ def LexicalFirst(T: List[String]): String = if (T.isEmpty) "" else { var f = T.head for (s <- T.tail) { if (s < f) f = s } f } val words = List("a", "b", "c", "die", "Katze", "lief", "im", "Schnee") val first = LexicalFirst(words) println(first) }