Ich versuche herauszufinden, wie man eine Karte in einen Sink-Kontext wirft. In diesem Code class Sunk { has $.titanic; method sink { say "Sinking $!titanic"; } } Sunk.new( :titanic($_) ) for 1..3; (1..3).map: { Sunk.new( :titanic($_) ) }; Die forSchleife versenkt effektiv alle erstellten, die mapnicht. Irgendeine Idee warum? Dieser …
Rakudo Version 2020.01 Ich habe einen Wegwerfcode geschrieben und mich nicht darum gekümmert, eine Klasse zu implementieren, sondern nur einen Hash als Work-Alike verwendet. Ich fand ein überraschendes Verhalten bei Listen. class Q1 {} class R1 { has Str $.some-str is required; has @.some-list is required; } my $r1 = …
In der folgenden einfachen for-Schleife erstellen wir ein Array (@a), indem wir eine typenlose Variable ($ n) inkrementieren: my @a = do for 1..3 { state $n; $n.^name, $n++; } say @a; Das Ergebnis wird "irgendwie" erwartet: [(Any 0) (Int 1) (Int 2)] Und ich sage "irgendwie", weil ich als …
Ich möchte eine Zeichenfolgenersetzung in einem forBlock mithilfe eines benannten Captures vornehmen . Ich habe erwartet, die Zahlen 1,2,3 als Ausgabe zu erhalten. Aber es ist Nilfür den ersten Lauf und dann 1 und 2 für den 2. und 3. Lauf. Wie verwende ich .substdas Konstrukt korrekt in der Schleife? …
Wie teile ich eine Zeichenfolge an einer Liste von Positionen schön / idiomatisch auf? Was ich habe: .say for split-at( "0019ABX26002", (3, 4, 8) ); sub split-at( $s, @positions ) { my $done = 0; gather { for @positions -> $p { take $s.substr($done, $p - $done ); $done = …
Im folgenden Beispiel versuche ich, ein Capture dynamisch zu erstellen, indem ich ein Array (@a) in ein Capture "konvertiere". Betrachten Sie den Code: sub f (|c){ say ''; say ' List : ' ~ do {c.list.gist if c.list.elems > 0}; say ' Hash : ' ~ do {c.hash.gist if c.hash.elems …
Beim Lesen und Ausprobieren von Signatur-Smartmatching stoße ich auf etwas Seltsames. Ausführen der folgenden Smartmaching-Signaturpaare: my @sigs = :($a, $b), :($a, @b), :($a, %b); my @signatures_to_check = :($, $), :($, @), :($, %); my $c = 0; for @sigs -> $sig { for @signatures_to_check -> $s { $c++; if $sig …
Ich habe das CPAN Perl-Modul Data :: Printer (DP) mit Perl verwendet. Es funktioniert großartig. Jetzt möchte ich es im Raku-Code verwenden. Wenn ich die :from<Perl5>Funktion zum Importieren verwende und dann Code damit ausführe, wird die Anmerkung (tied to Perl6::Hash)an die Anzeige von Hashes angehängt. 1 Wie das CPAN-Dokument von …
Ich habe eine Klasse mit Attributen. Ich möchte überprüfen, ob einige, aber nicht alle definiert sind. Damit: class A { has $.a is rw; has $.b is rw; has $.c is rw; has $.d is rw; method delete { ... } } my A $x .= new(:a<hi>, :d<good>); ## later …
Laut der Checkliste 6.d (aktuelle Version) können sie. Jedoch, class Foo { has num $.numillo; submethod BUILD( :$numillo = 3.5 ) {} }; my $foo = Foo.new; say $foo.raku; # OUTPUT: «Foo.new(numillo => 0e0)» Das Attribut scheint nicht bindbar zu sein oder erhält zumindest keinen zugewiesenen Wert. Vermisse ich hier …
Ich möchte ein mehrdimensionales Array @ain ein Array klonen @b. Ich habe den intuitivsten Weg eingeschlagen und mir Folgendes ausgedacht: my @a = [0, 0, 0], [0, 0, 0], [0, 0, 0]; my @b = @a.clone; @a[0][1] = 1; @b[1][0] = 1; say '@a : ' ~ @a.gist; say '@b …
Dies scheint eine einfache Frage zu sein, aber Perl6 / Raku verhält sich nicht so, wie ich es erwarten würde. Ich versuche, einen Verweis auf ein Array innerhalb eines Hashs zu erstellen, erhalte jedoch nicht das erwartete Verhalten. In Perl5 würde die Antwort den Zugriff auf das Array als Referenz …
Das Ergebnis ist das gleiche unter Currying, say map * **2 , 1, 3, 5, 7, 9; (1 9 25 49 81) say map *² , 1, 3, 5, 7, 9; (1 9 25 49 81) Auf der anderen Seite unterscheiden sich die Verhaltensweisen über den Cross-Meta-Operator. say 1, 3, …
Ich lade Module dynamisch in meine Raku Rest / API-Anwendung. Ich möchte vermeiden, dass der Server jedes Mal neu gestartet wird, wenn ich Änderungen an meinen Modulen vornehme. Gibt es eine Möglichkeit, die Raku-Module bei jedem Anruf neu zu laden? try require ::('Foo');
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.