Übereinstimmung mit dem n-ten Element einer Liste in Scala

8

Was ist das beste Scala-Idiom zum Vergleichen eines Wertes mit dem n-ten Element einer Liste?

Der naive Ansatz funktioniert offensichtlich nicht:

%Vor%

Um zu verdeutlichen: Bei dieser Frage geht es nicht darum, wie man einen Wert mit dem n-ten Element einer Liste vergleicht - es geht speziell darum, ob dies mit Hilfe von Matching geschehen kann.

    
enhanced_null 27.07.2011, 06:10
quelle

4 Antworten

17

Siehe, die Macht der Instanz Extraktoren! (Die Klasse Regex in der stdlib funktioniert ähnlich)

%Vor%     
Alex Cruise 27.07.2011, 06:42
quelle
3

Sie können die Liste anpassen:

%Vor% %Vor%     
onof 27.07.2011 06:44
quelle
2

Nun, List definiert keinen solchen Extraktor, aber Sie können:

%Vor%

Beachten Sie, dass dies immer die erste Übereinstimmung zurückgibt. Scala Pattern Matching funktioniert nicht wie Prolog - es liefert nicht 2 und sieht, ob das irgendwie wahr sein kann.

    
Daniel C. Sobral 27.07.2011 16:10
quelle
1

Nicht direkt. Einer davon kann jedoch Folgendes tun:

%Vor%

oder

%Vor%     
Alexey Romanov 27.07.2011 06:15
quelle

Tags und Links