Вопросы с тегом «raku»

Для вопросов, касающихся языка программирования Raku (ранее известного как Perl 6).

14
Почему нет метода «каждый» в последовательностях Perl6?

Иногда я начинаю писать цепочку вызовов методов в Perl 6 REPL, например: ".".IO.dir.grep(...).map(...). ... и затем я понимаю, что я хочу сделать с окончательным списком печать каждого элемента в отдельной строке. Я ожидал бы, что у последовательностей будет что-то вроде eachметода, чтобы я мог...

14
Сложность при построении вложенной структуры данных

Пытаясь создать сообщение JSON для API, я столкнулся с трудностями, пытаясь сделать что-то, что, на мой взгляд, было бы простым. Мне нужно было создать сообщение, подобное следующему: { "list": [ { "foo": 1, "bar": 2 } ] } Однако моя первая попытка не сработала: say to-json { foo => [ { a =>...

14
Я могу вызвать любой метод на ноль, и это чувствует себя неправильно

Недавно я потратил много времени на отладку скрипта, и когда я наконец нашел проблему, это было из-за кода, который был похож на это: class Foo { has $.bar; method () { # do stuff $!.bar; } } Оказалось, проблема была в том $!.bar, что должно было быть $!barили $.bar. Я понял это. Но почему это не...

13
Выражение последовательности двойного суммирования в раку

Как выразить последовательность двойного суммирования двойной переменной в Perl 6? Для примера двойной переменной последовательности двойного суммирования смотрите это Он должен быть выражен как есть, то есть без математического сведения двойного суммирования в одно суммирование....

13
Как реализовать в Раку

В Perl, используя Moo, вы можете реализовать aroundподпрограммы, которые обернутся вокруг других методов в классе. around INSERT => sub { my $orig = shift; my $self = shift; print "Before the original sub\n"; my $rv = $orig->($self, @_); print "After the original sub\n"; }; Как это поведение...

13
Как я могу определить грамматику Raku для анализа текста TSV?

У меня есть некоторые данные TSV ID Name Email 1 test test@email.com 321 stan stan@nowhere.net Я хотел бы разобрать это в список хэшей @entities[0]<Name> eq "test"; @entities[1]<Email> eq "stan@nowhere.net"; У меня возникли проблемы с использованием метасимвола новой строки для...

12
Скалярное значение зависит от толчка или нет ... (Раку)

Мне трудно понять, когда и почему значение, сохраняемое помещаемым Scalarконтейнером, изменяется после отправки. Я попытаюсь проиллюстрировать проблему, с которой я столкнулся, в более сложном контексте на двух стилизованных примерах. * Пример 1 * В первом примере скаляр $iпомещается в массив @bкак...

12
Perl 6 уменьшает функцию, а метаоператор сокращения дает разные результаты

my @s=<1 2 3 2 3 4>; say reduce {$^a < $^b}, @s; say [<] @s; # -------- # True # False У меня два вопроса: во-первых, почему метаоператор редукции обрабатывает <оператор по-разному? Похоже, что метаопция редукции использует переменную, которая при первом изменении true на false...

11
Используйте Haskell как модули Prelude в модуле в raku

Я пишу чертежный пакет с некоторыми частями, и у меня есть операторы и типы данных, разбросанные по всему. Однако я не хочу, чтобы пользователи добавляли соответствующие модули каждый раз, так как это было бы довольно грязно, например, у меня был бы Pointкласс, Monoidроль и Styleкласс по разным...

11
Запуск приложения Raku Cro в качестве постоянной службы

Я хотел бы запустить приложение perl6 / raku Cro в качестве службы для внешнего веб-сервера. Просто запуск cro runне будет обрабатывать перезапуск после segfaults & rebots. Ранее с perl5 я использовал FastCGI - однако Cro::HTTP::Server«s Cro::HTTP::Server.new().start()идиома не выглядит...

11
Альтернатива Perl's <> в Раку?

Здесь изучаю мой путь в Raku (neé Perl 6), очень хорошо со всех сторон. Но я очень скучаю по магии <>из Perl 5, где вы можете просто: my $x = <>; print $x; while(<>) { print join(':', split); } (прочитайте следующую строку ввода в $x, зациклите все остальное; ввод производится из...

10
Почему Raku так плохо работает с многомерными массивами?

Мне любопытно, почему Раку так плохо манипулирует многомерными массивами. Я сделал быстрый тест, инициализирующий 2-мерную матрицу в Python, C # и Raku, и прошедшее время на удивление велико для последующего. Для раку my @grid[4000;4000] = [[0 xx 4000] xx 4000]; # Elapsed time 42 seconds !! Для...

10
«Инвокант метода« ASSIGN-KEY »должен быть экземпляром объекта» при использовании оператора присваивания

Хеш с набранными ключами ... use v6; class Foo {} my Hash[Foo, Foo] $MAP; my $f1 = Foo.new; my $f2 = Foo.new; $MAP{$f1} = $f2; выдает ошибку: Инвокант метода 'ASSIGN-KEY' должен быть экземпляром объекта типа 'Hash [Foo, Foo]', а не объектом типа типа 'Hash [Foo, Foo]'. Вы забыли «.new»? Я нахожу...

10
Как передать параметры токену, на который ссылается переменная?

Я легко могу использовать подписи токена, используя имя токена напрямую: my token t ( $x ) { $x }; 'axb' ~~ / 'a' <t: 'x'> 'b' /; # match 'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match Однако я не нашел способ сделать это, когда токен хранится в переменной: my $t = token ( $x ) { $x }; 'axb'...

9
Perl regex против Raku regex, различия в движке?

Я пытаюсь перевести решение на основе регулярных выражений для задачи о ранце из Perl в raku. Подробности о Perlmonks Решение Perl создает это регулярное выражение: (?<P>(?:vvvvvvvvvv)?) (?<B>(?:vv)?) (?<Y>(?:vvvv)?) (?<G>(?:vv)?) (?<R>(?:v)?) 0 (?= (?(?{ $1 })wwww|)...

9
Нахождение смежных последовательностей равных элементов в списке Раку

Я хотел бы найти смежные последовательности равных элементов (например, длины 2) в списке 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)) Этот код выглядит нормально, но когда еще одна 2 добавляется после последовательности 2 2 2или когда...

9
Краткая печать математических серий в Раку

Математическая серия, например, последовательная последовательность, представленная здесь в виде массива: 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) }; Печать: a0 = 0 a1 = 1 a2 = 2 ... a8 = 8 a9 =...