Syntax :: Schlagwort :: Sammeln

Syntax :: Keyword :: Cath Perl-Klasse
Jetzt downloaden

Syntax :: Schlagwort :: Sammeln Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Arthur Axel Schmidt
  • Website des Verlags:
  • http://search.cpan.org/~frew/

Syntax :: Schlagwort :: Sammeln Stichworte


Syntax :: Schlagwort :: Sammeln Beschreibung

Syntax :: Keyword :: Cath Perl-Klasse Perl 6 bietet eine neue Steuerstruktur - sammeln -, mit der Listen verfahrenstechnisch konstruiert werden können, ohne dass eine temporäre Variable erforderlich ist. Innerhalb des Blocks / der Schließung, der von einem Sammeln gesteuert wird, schiebt jeder Anruf, der die Argumentliste von Ruf an ein implizit erstelltes Array anrufen. Nehmen Sie die Anzahl der mitgenommenen Elemente zurück. Syntax :: Keyword :: satsam ist ein Perl-Modul, das an der Steuerstruktur implementiert. ein Skalarkontext) .für Beispiel, anstatt zu schreiben: drucken do {my @wanted; während (meine $ line =) {Push @Wanted, $ Line, wenn $ line = ~ / \ d /; Push @wanted, - $ Zeile, wenn einige_Other_Condition ($ line); } Push @Wanted, 'EOF'; Join q {,}, @wanted; }; Nehmen Sie - $ Zeile, wenn einige_Other_condition ($ line); } Nehmen Sie 'EOF'; } und statt: mein $ text = do {meine $ string; während () {nächste, wenn / ^ # | ^ ^ \ s * $ /; Letzte IF / ^ __ __ \ n $ /; $ string. = $ _; } $ string; }; wir könnten schreiben: mein $ text = q {}, sammeln {while () {next if / ^ # | ^ \ s * $ /; Letzte IF / ^ __ __ \ n $ /; $ _; }}; Es gibt auch eine dritte Funktion - sammelt, was einen Verweis auf das implizite Array zurückgibt, das gesammelt wird. Dies ist nützlich für den Umgang mit Standards: My @odds = sammeln {für @Data {Nehmen Sie $ _, wenn $ _% 2; Nehmen Sie to_num ($ _), wenn / $ /; } Nehmen Sie (1,3,5,7,9), sofern nicht ergänzt; . komplexer als durch einfaches sequentielles Drücken. Wenn wir beispielsweise ein Zähler von nicht numerischen Elementen vorangehen müssten: My @odds = sammeln {für @Data {Nehmen Sie $ _, wenn $ _% 2; Nehmen Sie to_num ($ _), wenn / $ /; } Unshift gesammelt, + GREP (/ / I, @Data); } Konzeptionell sammeln / nehmen ist die verallgemeinerte Form, aus der sowohl Karte als auch Grepr. Das heißt, wir könnten diese beiden Funktionen implementieren als: Sub Map (@) {My $ codeeref = Schicht; my @list = @ {@__}; Return sammeln Sie {Nehmen Sie $ CodeRef -> ($ _) für (@list)}; } SUB GREP (@) {MEINE $ CODEREF = Schicht; my @list = @ {@__}; RETURN SAMPE {Nehmen Sie $ _, wenn $ colleeref -> ($ _) für @list}; } Eine Versammlung ist auch ein sehr praktischer Weg, um den Aufbau einer Liste zu keitleisten. Angenommen, wir wollten beispielsweise eine einzige sortierte Liste von Zeilen aus zwei sortierten Dateien generieren, jedoch nur bis zur ersten Zeile, die sie gemeinsam haben. Wir könnten die Zeilen so sammeln: mein @merged_diff = sammeln {mein $ a = <$ fh_a>; mein $ b = <$ fh_b>;; während (1) {if (definiert ($ a definiert $ b) {if ($ a EQ $ B) {Last} # Duplicate bedeutet Ende der Liste ELSIF ($ A LT $ B) {Nehmen Sie $ A; $ a = <$ fh_a>;; } else {nimm $ b; $ B = <$ fh_b>;; }} ELSIF (definiert $ A) {Nehmen Sie $ A; $ a = <$ fh_a>;; } ELSIF (definiert $ b) {Nehmen Sie $ B; $ B = <$ fh_b>;; } else {Last}}}} synOPSIS verwenden Syntax :: Schlüsselwort :: sammeln; My @list = sammeln {# Versuchen Sie, ungerade Zahlen und ungerade Nummernnamen zu extrahieren ... für (@Data) {if (/ (eins | drei | fünf | sieben | neun) $ /) {nimm qq {'$ _' }} ELSIF (/ ^ \ d + $ / $ _% 2) {Nehmen Sie $ _ _}}} #, verwenden Sie jedoch das Standard-Set, wenn es nicht entweder ist ... Nehmen Sie @Defaults, sofern nicht mehr gesammelt; } Anforderungen: · Perl.


Syntax :: Schlagwort :: Sammeln Zugehörige Software