|
Perl 6
Perl 6 Tutorial Part 3: Revision 4
{ :toc}
Arrays in Perl
Und wie angekündigt geht es in dieser Folge um Operatoren, die den Umgang mit
Als Perl noch klein war und auf Larrys Wickeltisch lag, gab es nur einzelne Werte
Perl 5: Perl 6:
Diese Beispiele zeigen: den Kontext bestimmt jetzt vor allem der Empfänger der
In Teil 2 wurde vorgestellt, daß ebenso Operatoren den Kontext bestimmen können.
Perl 5: Perl 6:
Doch auch für das "~@a" wurde noch eine Schreibweise geschaffen, da innerhalb von
Perl 6:
Möchte man die Ausgabe der oberen Zeile innerhalb einer Angabe geht das nun auch
Perl 6:
Auch die Ausgabe einzelner Arraywerte kann Umsteiger anfangs ratlos machen, denn Füttern der ArraysDas einfache füllen eines Arrays geht wie gewohnt:
Perl 6:
Die runden Klammern können weggelassen werden, da das Komma jetzt arrayerzeugender
Perl 6:
Aber so würde es wohl auch kein geübter Perlautor schreiben, denn es gibt ja qw().
Perl 6:
Im vorigen Teil hatte ich ja schon erwähnt das es von "<>" noch eine Version gibt,
Perl 6:
Hashschlüssel wurden zwar vorher auch oft nicht gequotet aber sowas tun nur Rüpel,
Auch die altbekannten Rangeoperatoren kann man immer noch zum befüllen von Arrays
Perl 6: Ersteres kann man aber jetzt noch kürzer schreiben:
Perl 6:
Ja genau, das Dach schließt das ihm Folgende als Grenzwert aus und die 0 wird
Perl 6:
Und da wir grad bei Schleifen sind: Wie oft wollten Perl 5-Programmierer die
Perl 6:
Selbstverständlich ist "by" kein Spezialbefehl für Schleifen, sondern kann immer
Perl 6: Es lebe die Faulheit
Die Menge die ein Perl 6-Array speichert, kann aber nicht nur leer sein, sondern
Perl 6:
Inf (gibt es in den Varianten +Inf und -Inf) oder * steht hier für Unendlich und
Perl 6:
Im Gegenzug ist es auch möglich mit "lazy" die "lazy evaluation" zu erzwingen, wo
Perl 6:
Selbstverständlich unterbricht ein "eager" oder "sort" die "lazy evaluation" in
Befehle wie push, pop, shift und splice, die auch dafür geeignet sind, Arrays zu Die Raubtierfütterung geht weiter
Wenn einem grad nichts einfällt, kann ein Array natürlich auch mit Wiederholungen
Perl 6:
Anders als in Perl 5.10 unterscheidet "x" hier keinen Kontext. Es wiederholt, wie
Perl 6:
Wie das Resultat aufgelöst wird, hängt wieder vom Kontext ab, wobei es an der Zeit
Perl 6:
Genauso kontextsensitiv ist auch der "zip" Operator, der ebenfalls aus bestehenden
Perl 6:
Besonders für die parallele Verarbeitung mehrer Arrays in einer Schleife ist das
Sowohl der Kreuz- als auch der Reißverschlussoperator kann mehrfach verkettet
Perl 6: Giga, Hyper, Meta ...
Mit dem großen Kreuz lässt sich sogar noch weit mehr anstellen wenn es circumfix
Der Kreuz-Metaoperator funktioniert auch fast wie der einfache Kreuzoperator. Auf
Perl 6:
Der praktische Nutzen von solchem Code ist nicht nur daß er mindestens 5 Zeilen
Der klassische Anwendungsfall für Hyperoperatoren besteht darin, die ersten Werte
Perl 6:
Möchte man einen einzelnen Wert auf eine Liste anwenden, so reicht es, die Richtung
Perl 6:
Das breite Ende der Pfeile zeigt an, welche Seite die Dimension des Ergebnises
Perl 6:
Sehr nützlich ist auch, daß Hyperoperatoren sehr gut mit mehrdimensionalen Arrays
Perl 6:
Im zweiten Beispiel bestimmt die linke Seite, wegen der Richtung der Operatoren,
Die dritte Klasse an Metaoperatoren sind die Reduktionsoperatoren. Ihr Name ist
Perl 6:
Trickreich und effektiv lassen sie sich auch mit Vergleichs- und Auswahloperatoren
Perl 6:
Aber auch Reihen, wie man sie beim Mathe-Wettbewerb "Euler" häufig braucht,
Perl 6:
Diese Form liefert die Aufzählung aller Zwischenergebnisse eines Reduktionsops. Und noch ein Blick in die Quantenwelt
Neben Larry Wall ist Damian Conway einer der Hauptgestalter der Perl 6-Syntax.
Perl 5: So geht das in Perl 6 auch junktiv.
Perl 6:
Aus Perl 5 ist bekannt, daß "|" für ein logisches "oder"(or) steht, "&" für "und"
Perl 6:
Wem das nicht ganz geheuer kann auch einen vertrauten Array verwenden und dessen
my @gfarben = <rot blau grün>;
Sicher ließe sich anstatt "any(@gfarben)auch die reduktive Variante @gfarben"
Perl 6:
Selbstverständlich lassen sich Junctions auch schachteln. Mit ihnen kann man auch
Perl 6:
Am schönsten daran ist wohl, daß man so komplexe logische Regelwerke kombinieren Danke
Über Arrays in Perl 6 lassen sich noch viele weitere Neuerungen berichten. Dieses |