perl 6, genau jetzt! - linux user group augsburg … › download › vortraege › perl6.pdfruby...
TRANSCRIPT
![Page 1: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/1.jpg)
ParrotPerl 6Pugs
Ausblick
Perl 6, genau jetzt!
Ingo Blechschmidt<[email protected]>
LUGA
4. Mai 2005
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 2: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/2.jpg)
ParrotPerl 6Pugs
Ausblick
Inhalt
1 ParrotUberblickArchitekturBeteiligungsmoglichkeiten
2 Perl 6DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
3 PugsUbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
4 AusblickIngo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 3: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/3.jpg)
ParrotPerl 6Pugs
Ausblick
UberblickArchitekturBeteiligungsmoglichkeiten
Parrot?
Registerbasierte virtuelle Maschine
Plattformunabhangiger Bytecode
”One bytecode to rule them all“
BASIC ForthLisp ParakeetPerl 5 Perl 6PHP PythonRuby SchemeTCL . . .
↔ Parrot ↔
BASIC ForthLisp ParakeetPerl 5 Perl 6PHP PythonRuby SchemeTCL . . .
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 4: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/4.jpg)
ParrotPerl 6Pugs
Ausblick
UberblickArchitekturBeteiligungsmoglichkeiten
Parrot?
Verdammt schnelle registerbasierte virtuelle Maschine
Plattformunabhangiger Bytecode
”One bytecode to rule them all“
BASIC ForthLisp ParakeetPerl 5 Perl 6PHP PythonRuby SchemeTCL . . .
↔ Parrot ↔
BASIC ForthLisp ParakeetPerl 5 Perl 6PHP PythonRuby SchemeTCL . . .
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 5: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/5.jpg)
ParrotPerl 6Pugs
Ausblick
UberblickArchitekturBeteiligungsmoglichkeiten
Parrot?
Verdammt schnelle registerbasierte virtuelle Maschine
Plattformunabhangiger Bytecode
”One bytecode to rule them all“
BASIC ForthLisp ParakeetPerl 5 Perl 6PHP PythonRuby SchemeTCL . . .
↔ Parrot ↔
BASIC ForthLisp ParakeetPerl 5 Perl 6PHP PythonRuby SchemeTCL . . .
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 6: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/6.jpg)
ParrotPerl 6Pugs
Ausblick
UberblickArchitekturBeteiligungsmoglichkeiten
Architektur
Je 64 Register der Typen I, N, S und P
I: IntN: NumS: StringP: PMC – Parrot Magic Cookie
Bereitstellung von Garbage Collection, Subroutinen,Coroutines, Continuations, Klassen, Methoden
Just In Time-Compiler fur meist benutzte Plattformen ⇒Speed!
HLL → PIR → Bytecode →natives Programm, C oder direkte Ausfuhrung
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 7: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/7.jpg)
ParrotPerl 6Pugs
Ausblick
UberblickArchitekturBeteiligungsmoglichkeiten
Beteiligungsmoglichkeiten
Mailingliste:[email protected],gmane.comp.lang.perl.perl6.internals
IRC: #parrot auf irc.perl.org
Auch Newbies gern gesehen
Viele Beteiligungsmoglichkeiten, nicht nur fur Programmierer
Weitere Informationen: http://www.parrotcode.org/
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 8: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/8.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
”Die Wasserbett-Theorie“
Glattes Wasserbett
Eindrucken an einer Stelle (Vereinfachung) ⇒Hochkommen an anderen Stellen (Komplizierung)
Gleichgewicht
Sehr viele Operatoren: +@= /%^ !@= ↔Sehr wenig Operatoren: set(x, add(5, 3))
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 9: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/9.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
”Die Wasserbett-Theorie“
Glattes Wasserbett
Eindrucken an einer Stelle (Vereinfachung) ⇒Hochkommen an anderen Stellen (Komplizierung)
Gleichgewicht
Sehr viele Operatoren: +@= /%^ !@= ↔Sehr wenig Operatoren: set(x, add(5, 3))
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 10: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/10.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
”Die Wasserbett-Theorie“
Glattes Wasserbett
Eindrucken an einer Stelle (Vereinfachung) ⇒Hochkommen an anderen Stellen (Komplizierung)
Gleichgewicht
Sehr viele Operatoren: +@= /%^ !@= ↔Sehr wenig Operatoren: set(x, add(5, 3))
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 11: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/11.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Huffmann-Komprimierung
Haufig genutzte Features →kurze Namen (z.B. say, cat)
Selten genutzte Features →lange Namen (z.B. gethostbyname,nautilus-file-management-properties)
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 12: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/12.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Freiheit und Anpassung
Kein Zwange, nur angemessene Standards
Brauche, keine Gesetze
”Nur tote Sprachen andern sich nicht.“
Moglichkeiten der Anpassung
Uberschreiben/Erweitern von Builtins und Operatoren
C-like und Lisp-like Makros
Neudefinition der Grammatik:use Grammar::Python;x = [ foo(), bar() ]x.push(3)
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 13: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/13.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Freiheit und Anpassung
Kein Zwange, nur angemessene Standards
Brauche, keine Gesetze
”Nur tote Sprachen andern sich nicht.“
Moglichkeiten der Anpassung
Uberschreiben/Erweitern von Builtins und Operatoren
C-like und Lisp-like Makros
Neudefinition der Grammatik:use Grammar::Python;x = [ foo(), bar() ]x.push(3)
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 14: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/14.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Freiheit und Anpassung
Kein Zwange, nur angemessene Standards
Brauche, keine Gesetze
”Nur tote Sprachen andern sich nicht.“
Moglichkeiten der Anpassung
Uberschreiben/Erweitern von Builtins und Operatoren
C-like und Lisp-like Makros
Neudefinition der Grammatik:use Grammar::Python;x = [ foo(), bar() ]x.push(3)
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 15: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/15.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
DWIM – Do What I Mean
Do What I Mean
Nicht immer gleich Do What You Mean
Beispiele
5 + 3*2 # 5 + (3*2)s:2nd/foo/bar/ # Zweites "foo" → "bar"s:2th/foo/bar/ # ditto
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 16: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/16.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
DWIM – Do What I Mean
Do What I Mean
Nicht immer gleich Do What You Mean
Beispiele
5 + 3*2 # 5 + (3*2)s:2nd/foo/bar/ # Zweites "foo" → "bar"s:2th/foo/bar/ # ditto
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 17: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/17.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
”Ausleihen“
”Ausleihen“ von Features aus anderen Sprachen
Zusammenarbeit zwischen den Sprachenentwicklern
Beispiele
. als Methodenaufrufoperator (von Python, Ruby und vielenanderen Sprachen)
Pragmas (ursprunglich von C)
Klammern:”Oha! Hier ist etwas anders als normal!“ (Perl 5,
Ruby, Mathematik)
5 + (3 · 2) → 5 + 3 · 2say(...) → say ...
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 18: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/18.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
”Ausleihen“
”Ausleihen“ von Features aus anderen Sprachen
Zusammenarbeit zwischen den Sprachenentwicklern
Beispiele
. als Methodenaufrufoperator (von Python, Ruby und vielenanderen Sprachen)
Pragmas (ursprunglich von C)
Klammern:”Oha! Hier ist etwas anders als normal!“ (Perl 5,
Ruby, Mathematik)
5 + (3 · 2) → 5 + 3 · 2say(...) → say ...
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 19: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/19.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
”Hello World“
Perl 6: say "Hello, World!";Perl 5: print "Hello, World!\n";
C: printf("%s\n", "Hello, World!");Haskell: putStrLn "Hello, World!"Lua: print "Hello, World!";PHP: print("Hello, World!\n");Python: print "Hello, World!"Ruby: puts "Hello, World!"Shell: echo "Hello, World!"Tcl: puts "Hello, World!"
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 20: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/20.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Variablen
Haupttypen:$scalar, @array, %hash, &code
Dereferenzierung:@array[3],%hash{"key"}, %hash<key>,&code(argumente)
Slices:@array[23, 42],%hash{"ingo", "larry"}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 21: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/21.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Variablen
Haupttypen:$scalar, @array, %hash, &code
Dereferenzierung:@array[3],%hash{"key"}, %hash<key>,&code(argumente)
Slices:@array[23, 42],%hash{"ingo", "larry"}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 22: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/22.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Variablen
Haupttypen:$scalar, @array, %hash, &code
Dereferenzierung:@array[3],%hash{"key"}, %hash<key>,&code(argumente)
Slices:@array[23, 42],%hash{"ingo", "larry"}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 23: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/23.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Operatoren
Standard-Operatoren:
+ * - / ~[] {}.... (Yadda-Yadda)
Chained Operators: 23 < $a < 42
Kontextspezifizierer:
+@array (Anzahl Elemente in @array)~@array (@array als Zeichenkette)?@array (
”Enthalt @array Elemente?“)
Hyper-Operatoren:[1, 2, 3] �*� 2 # [2, 4, 6][1, 2, 3] �+� [4, 5, 6] # [5, 7, 9]
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 24: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/24.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Operatoren
Standard-Operatoren:
+ * - / ~[] {}.... (Yadda-Yadda)
Chained Operators: 23 < $a < 42
Kontextspezifizierer:
+@array (Anzahl Elemente in @array)~@array (@array als Zeichenkette)?@array (
”Enthalt @array Elemente?“)
Hyper-Operatoren:[1, 2, 3] �*� 2 # [2, 4, 6][1, 2, 3] �+� [4, 5, 6] # [5, 7, 9]
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 25: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/25.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Operatoren
Standard-Operatoren:
+ * - / ~[] {}.... (Yadda-Yadda)
Chained Operators: 23 < $a < 42
Kontextspezifizierer:
+@array (Anzahl Elemente in @array)~@array (@array als Zeichenkette)?@array (
”Enthalt @array Elemente?“)
Hyper-Operatoren:[1, 2, 3] �*� 2 # [2, 4, 6][1, 2, 3] �+� [4, 5, 6] # [5, 7, 9]
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 26: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/26.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Operatoren
Standard-Operatoren:
+ * - / ~[] {}.... (Yadda-Yadda)
Chained Operators: 23 < $a < 42
Kontextspezifizierer:
+@array (Anzahl Elemente in @array)~@array (@array als Zeichenkette)?@array (
”Enthalt @array Elemente?“)
Hyper-Operatoren:[1, 2, 3] �*� 2 # [2, 4, 6][1, 2, 3] �+� [4, 5, 6] # [5, 7, 9]
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 27: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/27.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Junctions
”Wenn $a einen dieser Werte hat, dann...“
Perl 5: if($a == 3 || $a == 5 || $a == 7) {...}Perl 6: if $a == 3|5|7 {...}
”Wenn alle mindestens 18 sind, dann...“
Perl 5: if(grep({ $ ->age < 18 } @leute) == 0) {...}Perl 6: if all(@leute�.age) >= 18 {...}
”Wenn mindestens einer mindestens 18 ist, dann...“
Perl 5: if(grep { $ ->age >= 18 } @leute) {...}Perl 6: if any(@leute�.age) >= 18 {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 28: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/28.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Junctions
”Wenn $a einen dieser Werte hat, dann...“
Perl 5: if($a == 3 || $a == 5 || $a == 7) {...}Perl 6: if $a == 3|5|7 {...}
”Wenn alle mindestens 18 sind, dann...“
Perl 5: if(grep({ $ ->age < 18 } @leute) == 0) {...}Perl 6: if all(@leute�.age) >= 18 {...}
”Wenn mindestens einer mindestens 18 ist, dann...“
Perl 5: if(grep { $ ->age >= 18 } @leute) {...}Perl 6: if any(@leute�.age) >= 18 {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 29: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/29.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Junctions
”Wenn $a einen dieser Werte hat, dann...“
Perl 5: if($a == 3 || $a == 5 || $a == 7) {...}Perl 6: if $a == 3|5|7 {...}
”Wenn alle mindestens 18 sind, dann...“
Perl 5: if(grep({ $ ->age < 18 } @leute) == 0) {...}Perl 6: if all(@leute�.age) >= 18 {...}
”Wenn mindestens einer mindestens 18 ist, dann...“
Perl 5: if(grep { $ ->age >= 18 } @leute) {...}Perl 6: if any(@leute�.age) >= 18 {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 30: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/30.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Junctions
”Wenn $a einen dieser Werte hat, dann...“
Perl 5: if($a == 3 || $a == 5 || $a == 7) {...}Perl 6: if $a == 3|5|7 {...}
”Wenn alle mindestens 18 sind, dann...“
Perl 5: if(grep({ $ ->age < 18 } @leute) == 0) {...}Perl 6: if all(@leute�.age) >= 18 {...}
”Wenn genau einer einer mindestens 18 ist, dann...“
Perl 5: if(grep({ $ ->age >= 18 } @leute) == 1) {...}Perl 6: if one(@leute�.age) >= 18 {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 31: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/31.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Smartmatching (”Extreme DWIM“)
# Enthalt $str "foo"?if $str ~~ m/foo/ {...}
# Enthalt @array "ingo"?if "ingo" ~~ @array {...}
# Gibt es einen Key "ingo" in %hash?if "ingo" ~~ %hash {...}
# Sind @foo und @bar identisch?if @foo ~~ @bar {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 32: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/32.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Smartmatching (”Extreme DWIM“)
# Enthalt $str "foo"?if $str ~~ m/foo/ {...}
# Enthalt @array "ingo"?if "ingo" ~~ @array {...}
# Gibt es einen Key "ingo" in %hash?if "ingo" ~~ %hash {...}
# Sind @foo und @bar identisch?if @foo ~~ @bar {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 33: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/33.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Smartmatching (”Extreme DWIM“)
# Enthalt $str "foo"?if $str ~~ m/foo/ {...}
# Enthalt @array "ingo"?if "ingo" ~~ @array {...}
# Gibt es einen Key "ingo" in %hash?if "ingo" ~~ %hash {...}
# Sind @foo und @bar identisch?if @foo ~~ @bar {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 34: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/34.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Smartmatching (”Extreme DWIM“)
# Enthalt $str "foo"?if $str ~~ m/foo/ {...}
# Enthalt @array "ingo"?if "ingo" ~~ @array {...}
# Gibt es einen Key "ingo" in %hash?if "ingo" ~~ %hash {...}
# Sind @foo und @bar identisch?if @foo ~~ @bar {...}
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 35: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/35.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Subroutines – Definition
Perl 6: sub foo(Num $i) { say $i + 3 }Perl 5: sub foo { my $i = shift; print $i + 3, "\n" }
C: void foo(float i) { printf("%f\n", i + 3); }Haskell: foo i = putStrLn . show $ i + 3Lua: function foo(i) print(i + 3) endPHP: function foo($i) { print($i + 3); }Python: def foo(i): print i + 3Ruby: def foo(i) puts i + 3 endShell: function foo { echo $(($1 + 3)); }Tcl: proc foo {i} { puts [expr $i + 3] }
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 36: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/36.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Subroutines – Aufruf
Perl 6: foo 42; ∨ foo i => 42; ∨ foo :i(42);Perl 5: foo 42;
C: foo(42);Haskell: foo 42Lua: foo(42)PHP: foo(42);Python: foo(42)Ruby: foo 42Shell: foo 42Tcl: foo 42
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 37: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/37.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in anderen Sprachen
Perl 5
package Foo;sub new { bless {}, shift }sub hallo { "Hallo " . $ [1] . "!" }sub bar :lvalue { $ [0]->{foo} }
# Dann:my $obj = Foo->new;$obj->bar = 42;print $obj->hallo("Ingo");
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 38: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/38.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in anderen Sprachen
PHP
class Foo {var $bar;function hallo($name) {return "Hallo $name!";
}}
# Dann:$obj = new Foo();$obj->bar = 42;print $obj->hallo("Ingo");
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 39: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/39.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in anderen Sprachen
Python
class Foo:bar = Nonedef hallo(self, name):return "Hallo %s!" % name
# Dann:obj = Foo()obj.bar = 42print obj.hallo("Ingo")
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 40: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/40.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in anderen Sprachen
Ruby
class Fooattr accessor :bardef hallo(name)
return "Hallo #{name}!"end
end
# Dann:obj = Foo.newobj.bar = 42puts obj.hallo("Ingo")
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 41: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/41.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in Perl 6
Perl 6
class Foo {has $.bar;method hallo(Str $name) {
return "Hallo {$name}!";}
}
# Dann:my $obj = Foo.new;say $obj.bar;say $obj.hallo("Ingo");
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 42: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/42.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in Perl 6
Perl 6
class Foo {has $.bar is rw;method hallo(Str $name) {
return "Hallo {$name}!";}
}
# Dann:my $obj = Foo.new;$obj.bar = 42;say $obj.hallo("Ingo");
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 43: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/43.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in Perl 6
Perl 6
class Foo {has $.bar is rw;method hallo(Str $name) {
return "Hallo {$name}!";}
}
# Dann:my $obj = Foo.new;$obj.bar = 42;say hallo $obj: "Ingo";
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 44: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/44.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in Perl 6
Perl 6
class Foo {has $.bar is rw;method hallo(Str $name) {
return "Hallo {$name}!";}
}
# Dann:my Foo $obj = Foo.new;$obj.bar = 42;say hallo $obj: "Ingo";
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 45: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/45.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in Perl 6
Perl 6
class Foo {has $.bar is rw;method hallo(Str $name) {
return "Hallo {$name}!";}
}
# Dann:my Foo $obj .= new;$obj.bar = 42;say hallo $obj: "Ingo";
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 46: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/46.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Klassendefinition und -instantiierung in Perl 6
Perl 6
class Foo is Baz {has $.bar is rw;method hallo(Str $name) {
return "Hallo {$name}!";}
}
# Dann:my Foo $obj .= new;$obj.bar = 42;say hallo $obj: "Ingo";
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 47: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/47.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Rollen
role Logger::Mail {method log(Str $message) {...}
}
role Logger::Logfile {method log(Str $message) {...}
}
class NormaleKlasse {...}
my NormaleKlasse $normales obj .= new(...);$normales obj does Logger::Mail;$normales obj.log(...);
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 48: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/48.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Rollen
role Logger::Mail {method log(Str $message) {...}
}
role Logger::Logfile {method log(Str $message) {...}
}
class NormaleKlasse does Logger::Mail {...}
my NormaleKlasse $normales obj .= new(...);
$normales obj.log(...);
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 49: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/49.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Laziness
my @N = (1..Inf);my @prims = @N.grep:{ is_prime($^a, $^b) };my @prims_mal_zwei = @prims.map:{ $^zahl * 2 };say @prims_mal_zwei[42];# Gibt das doppelte der 43. Primzahl aus, also 382. :)
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 50: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/50.jpg)
ParrotPerl 6Pugs
Ausblick
DesignCodebeispieleObjektorientierungMitgestaltungsmoglichkeiten
Mitgestaltungsmoglichkeiten
Mailingliste:[email protected],gmane.comp.lang.perl.perl6.language
IRC: #perl6 auf Freenode
Auch Newbies gern gesehen
Viele Beteiligungsmoglichkeiten, nicht nur fur Programmierer
Weitere Informationen: http://dev.perl.org/perl6/
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 51: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/51.jpg)
ParrotPerl 6Pugs
Ausblick
UbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
”Perl 6 ist ja schon und gut, aber das dauert doch noch
Jahre, bis es fertig ist!“
Nur tote Produkte sind”fertig“.
Parrot steht bereits.
Seit dem 1. Februar gibt es nun auch einen Perl 6-Compiler.
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 52: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/52.jpg)
ParrotPerl 6Pugs
Ausblick
UbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
Pugs
Ursprunglich Haskell-Projekt von Autrijus Tang”als Ubung“
Projektbeginn: 1. Februar 2005
Nun fast 100 Entwickler
Version 6.2.2: Beinahe Alles (!) außer Objektorientierung
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 53: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/53.jpg)
ParrotPerl 6Pugs
Ausblick
UbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
Entwicklung
”Test-driven development“ –
Camelfolks: Schreiben von Tests in Perl 6 fur noch nichtimplementierte Features
is 23 + 42, 64, "Einfache Rechnungen funzen.";is ~[1, 2, 3], "1 2 3","Arrays wandeln sich richtig in Strings um.";
is +[1, 2, 3], 3,"Arrays wandeln sich richtig in Ints um.";
Lambdafolks: Implementierung dieser Features
Ergebnis der Zusammenarbeit:Uber 4.000 funktionierende Tests
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 54: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/54.jpg)
ParrotPerl 6Pugs
Ausblick
UbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
Entwicklung
”Test-driven development“ –
Camelfolks: Schreiben von Tests in Perl 6 fur noch nichtimplementierte Features
is 23 + 42, 64, "Einfache Rechnungen funzen.";is ~[1, 2, 3], "1 2 3","Arrays wandeln sich richtig in Strings um.";
is +[1, 2, 3], 3,"Arrays wandeln sich richtig in Ints um.";
Lambdafolks: Implementierung dieser Features
Ergebnis der Zusammenarbeit:Uber 4.000 funktionierende Tests
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 55: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/55.jpg)
ParrotPerl 6Pugs
Ausblick
UbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
Weitere Plane
Pugs 6.0 Erstes ReleasePugs 6.2 Grundlegende IO- und Kontrollflusselemente,
veranderbare VariablenPugs 6.28 KlassenPugs 6.283 Rules und GrammarsPugs 6.2831 RollenPugs 6.28318 MakrosPugs 6.283185 Portierung von Pugs von Haskell nach Perl 6Pugs 2π Vollendung
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 56: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/56.jpg)
ParrotPerl 6Pugs
Ausblick
UbersichtEntwicklungWeitere PlaneBeteiligungsmoglichkeiten
Beteiligungsmoglichkeiten
Mailingliste:[email protected],gmane.comp.lang.perl.perl6.compiler
IRC: #perl6 auf Freenode
Auch Newbies gern gesehen
Schreiben von Tests (Perl 6), Implementierung (Haskell),Schreiben von Dokumentation, Portierung vonPerl 5|Python|Ruby|. . . -Modulen nach Perl 6, . . .
Weitere Informationen: http://www.pugscode.org/
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!
![Page 57: Perl 6, genau jetzt! - Linux User Group Augsburg … › download › Vortraege › Perl6.pdfRuby Scheme TCL ... Ingo Blechschmidt Perl 6, genau jetzt! Parrot](https://reader035.vdocuments.pub/reader035/viewer/2022063000/5f10fbe237d4cd09bc5f552a/html5/thumbnails/57.jpg)
ParrotPerl 6Pugs
Ausblick
Ausblick
Perl 6 ist verdammt cool. :)
Parrot steht bereits und bringt einiges an Geschwindigkeit furviele Sprachen.
Dank Pugs kann man schon genau jetzt in Perl 6programmieren.
Ingo Blechschmidt <[email protected]> Perl 6, genau jetzt!