Questions tagged «raku»

有关与Raku编程语言(以前称为Perl 6)有关的问题。

1
在EOS停止Raku语法(字符串结尾)
在学习一种音乐语言的翻译者(从ABC到Alda)作为学习Raku DSL能力的借口的过程中,我注意到似乎没有一种方法可以终止.parse!这是我缩短的演示代码: #!/home/hsmyers/rakudo741/bin/perl6 use v6d; # use Grammar::Debugger; use Grammar::Tracer; my $test-n01 = q:to/EOS/; a b c d e f g A B C D E F G EOS grammar test { token TOP { <score>+ } token score { <.ws>? [ | <uc> | <lc> ]+ <.ws>? } token …
9 parsing  grammar  raku 

2
在列表Raku中找到相等元素的连续序列
我想在列表中找到相等元素(例如,长度为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或从中删除一个2时,它说Too few positionals passed; expected 2 arguments but got 1如何解决?请注意,我试图在不使用for循环的情况下找到它们,即,我试图尽可能地使用功能代码来找到它们。 可选:在粗体打印部分中: <1 1 0 …
9 sequence  raku 


1
Perl regex与Raku regex,引擎的差异?
我正在尝试将针对背包问题的基于正则表达式的解决方案从Perl转换为raku。在详细Perlmonks Perl解决方案创建此正则表达式: (?<P>(?:vvvvvvvvvv)?) (?<B>(?:vv)?) (?<Y>(?:vvvv)?) (?<G>(?:vv)?) (?<R>(?:v)?) 0 (?= (?(?{ $1 })wwww|) (?(?{ $2 })w|) (?(?{ $3 })wwwwwwwwwwww|) (?(?{ $4 })ww|) (?(?{ $5 })w|) ) 与匹配vvvvvvvvvvvvvvvvvvv0wwwwwwwwwwwwwww。之后,匹配哈希%+包含要放入麻袋中的物品。 我的raku转换是: $<B> = [ [ vv ]? ] $<P> = [ [ vvvvvvvvvv ]? ] $<R> = [ [ v ]? ] $<Y> = …
9 regex  raku 

1
为什么默认的Raku if / while / loop / when块都具有相同的标识值(.WHICH)?
除了我声明签名的代码块外,所有代码块都具有相同的标识值,并声称无论在何处都在第1行声明。有人能解释为什么会这样吗? say 「Let's look at some blocks…」; if True { &?BLOCK.say; } while True { &?BLOCK.say; last; } loop { &?BLOCK.say; last; } if True -> | { 「I'm different!」.say; &?BLOCK.say; } when ?True { &?BLOCK.say; }
9 raku  routines 

2
有没有一种方法可以安全地重新声明符号?
我经常发现自己在REPL中进行实验,并且会说类似以下内容: subset Bar of Int where * %% 57; 然后,我Bar尝试检查-ness的情况。 一切都很高兴,直到我意识到我想更改的定义Bar。 如果我只是重新定义Bar,我会得到一个Redeclaration of symbol例外。 我尝试使用MONKEY-TYPING,augment像这样: use MONKEY-TYPING; augment subset Bar of Int where * %% 37; 但这使我犯了同样的错误。 我为什么要这个?因此,我可以迭代我的子集(或类或其他符号)的定义,同时重用我已经在历史记录中键入的测试。
9 raku 

3
在Raku中简洁地打印数学系列
数学级数,例如以此处表示为数组的连续序列: 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 …
9 sequence  raku 

2
在Ubuntu和Perl 5.26中安装Raku(Perl 6)
我很想学习Raku(Perl 6)及其语法。 我的Ubuntu计算机上已经安装了Perl 5。 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 be copied only under the terms of either the Artistic License or the GNU General …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.