Mogę łatwo korzystać z sygnatur tokenów, używając bezpośrednio nazwy tokena: my token t ( $x ) { $x }; 'axb' ~~ / 'a' <t: 'x'> 'b' /; # match 'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match Jednak nie znalazłem sposobu, aby to zrobić, gdy token jest …
Ciekawe, dlaczego Raku tak źle manipuluje wielowymiarowymi tablicami. Zrobiłem szybki test inicjujący macierz 2-wymiarową w Pythonie, C # i Raku, a upływający czas jest zaskakująco długi jak na później. Dla Raku my @grid[4000;4000] = [[0 xx 4000] xx 4000]; # Elapsed time 42 seconds !! Dla Pythona table= [ [ …
Wiemy, że awarią może zaradzić blok CATCH. W poniższym przykładzie tworzymy błąd „AdHoc” (w innym sub-sub) i obsługujemy wyjątek w bloku CATCH (w moim sub-sub) sub my-sub { try { CATCH { when X::AdHoc { say 'AdHoc Exception handled here'; .resume } default {say 'Other Exception'; .resume} } my $b …
Chciałbym zdefiniować kilka podzbiorów, do których również dodam kilka ograniczeń i kilka dieinstrukcji dla niektórych przydatnych komunikatów o błędach. Nie chcę ich definiować na górze modułu, który korzysta z tych podzbiorów, i zamiast tego chcę je umieścić w innym module, jednocześnie rezygnując z używania ich w pełni kwalifikowanych nazw (FQN). …
Kod podany w tym wątku już nie działa: Jak mogę zbuntować obiekt w Perlu 6? Napisałem ten fragment kodu w zeszłym roku i wtedy zadziałało. Teraz nie: class Person { ; } class Woman is Person { ; } my $tom = Person.new; my $lisa = Woman.new; say $tom.^name; # …
Próbuję obliczyć stałą e ( AKA Euler's Number ), obliczając wzór Aby obliczyć silnię i podział w jednym ujęciu, napisałem to: my @e = 1, { state $a=1; 1 / ($_ * $a++) } ... *; say reduce * + * , @e[^10]; Ale to nie wyszło. Jak to zrobić …
W trakcie pisania tłumacza jednego języka muzycznego na inny (od ABC do Alda) jako wymówki do nauki umiejętności Raku DSL zauważyłem, że nie ma sposobu na zakończenie .parse! Oto mój skrócony kod demonstracyjny: #!/home/hsmyers/rakudo741/bin/perl6 use v6d; # use Grammar::Debugger; use Grammar::Tracer; my $test-n01 = q:to/EOS/; a b c d e …
Chciałbym znaleźć ciągłe sekwencje równych elementów (np. O długości 2) na liście my @s = <1 1 0 2 0 2 1 2 2 2 4 4 3 3>; say grep {$^a eq $^b}, @s; # ==> ((1 1) (2 2) (4 4) (3 3)) Ten kod wygląda dobrze, ale …
Z wyjątkiem bloku, w którym zadeklarowałem podpis, wszystkie bloki mają tę samą wartość tożsamości i twierdzą, że zostały zadeklarowane w wierszu 1, niezależnie od tego, gdzie występują. Czy ktoś mógłby rzucić nieco światła na to, dlaczego tak jest? say 「Let's look at some blocks…」; if True { &?BLOCK.say; } while …
Często eksperymentuję w REPL i powiem coś takiego: subset Bar of Int where * %% 57; Potem przez Barchwilę bawię się sprawdzaniem rzeczy. Wszystko jest szczęśliwe, dopóki nie uświadomię sobie, że chcę zmienić definicję Bar. Jeśli przedefiniuję Bar, otrzymam Redeclaration of symbolwyjątek. Próbowałem użyć MONKEY-TYPINGi augmentpodoba mi się to: use …
Szeregi matematyczne, weźmy na przykład kolejną sekwencję przedstawioną tutaj jako tablicę: my @seq = my $a=0, {++$a} ... *; for @seq[^10].kv {state $f=0; ($^k < 4 or $^k > 7) ?? say "a$^k = " ~ $^v !! (say "..." if $f ne 1; $f=1) }; Wydruki: a0 = 0 …
Zależy mi na nauce Raku (Perl 6) i jego składni. Mam już zainstalowany Perl 5 na moim komputerze Ubuntu. vinod@ubuntu-s-1vcpu-1gb-nyc1-01:~$ perl -v This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi (with 67 registered patches, see perl -V for more detail) Copyright 1987-2017, Larry Wall Perl may …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.