Thread perl 6 diskussion: irgendwer gesteigertes interesse? (123 answers)
Opened by lichtkind at 2006-03-27 00:02

lichtkind
 2006-03-27 21:28
#89767 #89767
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ok fangen wir an, meine damen und herren perl 6 ops:

$a = 3 + 4; # verhält sich wie erwartet, = steht für lvalue zuweisungen
$a += 5; # wie zu erwarten 12
$a++; # 13

nachdem kleinen intro zum abbau des kulturschocks hier die sachen die anders sind:

Zuweisungen:

Perl 5: $b = \$a; Perl 6: $b := $a;
Perl 5: print $$b; Perl 6: print $b;

da $b eine referenz auf gleiche speicherzelle wie $a ist ergibt auch
if ($a =:= $b) {say "ja leute es ist wahr"} #say nur ein gimmick, alias auf print "$_\n"

möglich ist auch @a := @b oder ($a, $b) := ($c, $d)
aber nicht ($a, $b) := ($c); oder ($a, $b) := ($c, $d, $e);

string operatoren:

da der . im objektorientierten buisness angestellt ist heisst der neue operator ~ er soll 2 endne symbolisieren die was zusammenhalten und er kennzeichnet jetzt auch den string kontext der er erzwingt.

$horst_text = " Horst ist ein starker Krieger" ~ "und mag keine " ~ $Intromusik ~ ".";
$horst_text ~= " JAWOLL!";

wenn sich jetzt Horst für uns in den kamf stürzt und wir ihn anfeuern wollen:
$zuruf = "Horst !" x 7;
bei engegnern brauch es natürlich ein vielfaches an zurufen:
$zuruf x= 3;

=~ wurde zu ~~ ist leichter zu tippen und heisst jetzt smart match operator weil er von string über arrays bis objekte alles matcht was nicht bei 3 auf den bäumen ist, weil das so mächtig ist will ich dem am liebsten eignes kapitel widmen.

$horst ~~ /krieger/; # funzt immer noch in perl 6
$horst ~~ s/rüstung/gewand/; # aber opionen sind zb nach vorn gewandert
$horst ~~ m:i/krieger/; # option i kennt ja jeder
$horst ~~ s:g/rüstung/gewand/; # horst will nicht mehr kämpfen

aber mehr dazu das nächste mal

numerische operatoren:

im westen nichts neues von + bis **= alles wie gehabt.
+ zwingt zu num kontext so daß:

$number = +$string;

was aber noch den umgang mit zahlen angeht .. funzt jetzt nicht mehr als flip flop operator (jetzt ff) nur noch als range op.

boolsche op:
beginnen meist mit ? das diesen kontext erzwingt

$truth = ?$number;

abschliessend erwähn ich noch das es in perl 6 sehr viele kontexte geben wird nicht nur unsere alten freunde den void kontext (ich sag nix das wird man wohl noch sagen dürfen), scalar(liefert immer 1 wert und bei komplexen sachen die referenz drauf) , arraykontext(einzelne werte sind listen der länge 1), boolkontext (sein oder nichtsein) und auch wie erwähnt string und numerisch kontext nein es gibt jetzt auch noch

integer kontext # bitte nur ganze zahlen
hash kontext # hashes sind nun arrays anonymer paare
Object context # erstmal schaun ob du ein objekt bist
Flattening-list context # wie list kontext nur das jede komplexe strukturen automatisch platt gemacht werden
Nonflattening-list context # muss es ja dann auch geben
Lazy list context # wie nonflattening-list nur das man sich elemente erst bei bedarf abholt siehe high order perl


gut so hab ich mir es halt vorgestellt, vielleicht auch in grösseren oder kleineren postionen oder besser geordnet, mögen die kommentare beginnen\n\n

<!--EDIT|lichtkind|1143483605-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.

View full thread perl 6 diskussion: irgendwer gesteigertes interesse?