Als «raku» getaggte Fragen

8
Rationale Zahlen in Raku

Ich benutze Raku für einige Berechnungen, weil es schöne numerische Typen hat. Ich habe jedoch ein Problem mit der Verwendung von '.raku'. say (1/6+1/6).raku #<1/3> Wir erhalten dies. Jedoch, say (1/10+1/10).raku #0.2 Ist es ein Fehler? Ich habe <1/5> erwartet. Was...

8
Signaturbeschränkung in Rollen in Raku

Vielleicht fehlt mir etwas, aber ich würde gerne wissen, ob es einen guten Grund gibt, warum dieser Code kompiliert werden sollte role L { method do-l (Int, Int --> Int ) { ... } } class A does L { method do-l (Int $a, Real $b --> Str) { .Str ~ ": Did you expect Int?" with $a + $b...

8
Zerstöre eine Liste von Paaren

Erwägen .say for (1,2,2).rotor(2=>-1).map( -> ($a, $b) { $a - $b }) das funktioniert wie erwartet. Jedoch, .say for (1,2,2).pairs.rotor(2=>-1).map( -> ($a, $b) { $a.value - $b.value }) wirft Too few positionals passed to '<anon>'; expected 2 arguments but got 0 in sub-signature...

8
Wie iteriere ich durch ein Array in einem Raku-Hash?

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...

8
Überlastung des Raku-Bedieners

Verwenden Sie den folgenden Code: use v6d; # sub circumfix:<α ω>( @a ) { # @a[0] >= @a[1] & @a[0] <= @a[2]; # }; sub circumfix:<α ω>( $a, $b, $c ) { $a >= $b & $a <= $c; }; if (α <5 0 10> ω) { say 'Truthy'; } else { say 'Falsey'; } Ergebnisse...

8
Klonen mehrdimensionaler Arrays

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 : ' ~ @b.gist; und der Ausdruck ist: @a :...

8
Es ist unmöglich, eine Karte in einen Senkenkontext zu stellen

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...

8
Verwirrung über Listen in einem Aggregat, vielleicht Kontextproblem?

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...

8
Signaturen Smartmatching Missverständnisse

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...

8
Initialisierung von Time Warping-Variablen?

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...

8
String-Ersetzung durch .subst in einer for-Schleife

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...

8
Saite an bestimmten Positionen teilen

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 = $p; } take $s.substr(...

8
So erstellen Sie ein Capture dynamisch (Raku)

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 > 0}; say ''; }...