für mehrere Arrays

8

Im Schema können Sie mit for-each :

über mehrere Listen in iterieren %Vor%

Ich weiß, dass Sie in Perl for verwenden können, um über eine einzelne Liste zu iterieren. Was ist ein guter Weg, um mehrere Listen wie im Beispielschema zu durchlaufen?

Ich bin an Antworten für Perl 5 oder 6 interessiert.

    
dharmatech 10.06.2011, 00:11
quelle

8 Antworten

9

In Perl 5 können Sie das Modul List :: MoreUtils verwenden. Entweder paarweise oder mit dem Iterator, der von jedem_array zurückgegeben wird (das mehr als zwei Arrays gleichzeitig durchlaufen kann).

%Vor%     
Alex 10.06.2011, 00:59
quelle
10

In Perl 6 ist der Zip-Operator die beste Wahl. Wenn Sie beide Werte erhalten möchten (und die Summe nicht direkt berechnen), können Sie sie ohne das Pluszeichen verwenden:

%Vor%     
moritz 10.06.2011 07:00
quelle
6

Mit dem Zip-Operator können Sie erreichen, was Sie mit Schema tun:

%Vor%

Siehe Ссылка

    
tadzik 10.06.2011 00:19
quelle
2

Sie könnten einfach über die Indizes der Arrays iterieren, wenn Sie sicher sind, dass sie die gleiche Größe haben:

%Vor%     
glibdud 10.06.2011 02:31
quelle
2

Algorithm :: Loops bietet eine MapCar-Funktion für die Iteration über mehrere Arrays (mit Varianten, die sich bei ungleich großen Arrays unterscheiden) ).

    
ysth 10.06.2011 05:12
quelle
1

Ein Weg ist:

%Vor%

Verwendung von each_arrayref von List::MoreUtils :

%Vor%

Danke an Alex für den Hinweis List::MoreUtils .

    
dharmatech 10.06.2011 00:12
quelle
1

Solange die Frage so einfach ist wie das Hinzufügen (/ Multiplizieren, Dividieren, ...) und das Arrays sind keine Arrays von Arrays, Sie können auch die Hyperoperatoren für Ihre Aufgabe verwenden:

%Vor%

(natürlich ist dies eine Perl6 Antwort)

Wenn Sie keinen Zugriff auf die französischen Zitate «» haben, könnten Sie sie als

umschreiben %Vor%     
Patrick J. S. 16.06.2011 13:48
quelle
0

Eine Lösung (es gibt viele zur Auswahl) könnte so aussehen:

%Vor%

Ich spüre, dass Sie nach foreach fragen, was wie folgt aussehen könnte:

%Vor%

Aber in diesem Fall ist es nicht so glatt. Was passiert, wenn eines der Arrays kürzer ist?

    
TLP 10.06.2011 07:47
quelle

Tags und Links