raku相关内容

为什么将 Perl 6 命名参数限制为一个确定的值使其成为必需值?

考虑这些都采用单个命名参数的子例程.命名参数应该是可选的,我没有看到任何说明有例外. 没有类型约束就没有问题;命名参数不是必需的.使用可以接受类型对象的类型约束(无注释、:U 和 :_)就没有问题了. 例程'quux'的参数'$quux'必须是'Int'类型的对象实例,不是“Int"类型的类型对象.你忘记了'.new'吗?在/Users/brian/Desktop/type.p6 第 16 ..
发布时间:2021-07-02 19:31:15 其他开发

Perl6:函数/子例程的可变数量的参数

我希望能够在 Perl6 中运行具有可变数量参数的函数,但是在阅读了 https://docs.perl6.org/language/functions#Arguments 我不知道怎么做.我看到了许多其他语言的链接,并警告说“具有类似标题的问题经常被否决",但我在文档或 StackOverflow 的任何地方都没有看到这一点. 我想做这样的事情: some-test($v1, $v2) ..
发布时间:2021-07-02 19:31:12 其他开发

如何在 Perl6 中编写自定义访问器方法?

如何在 Perl6 中编写自定义访问器方法? 如果我有这门课: class Wizard {has Int $.mana is rw;} 我可以这样做: 我的向导 $gandalf .= new;$gandalf.mana = 150; 假设我想在不放弃 $gandalf.mana = 150; 符号的情况下向 Perl6 类中的 setter 添加一点检查(换句话说,我不想写这个: ..
发布时间:2021-07-02 19:31:09 其他开发

Perl 6 中的正则表达式速度

我以前只使用 bash 正则表达式、grep、sed、awk 等.在尝试了 Perl 6 regexes 之后,我的印象是它们的工作速度比我预期的要慢,但可能是因为我处理它们的方式不正确.我做了一个简单的测试来比较 Perl 6 和 bash 中的类似操作.这是 Perl 6 代码: my @array = "aaaaa" .. "fffff";说 +@array;# 7776 = 6 ** 5 ..
发布时间:2021-07-02 19:31:06 其他开发

多个 MAIN 签名

我有一个包含多个 main 的包,我想定义几个选项: 我的代码是这样的: package Perl6::Documentable::CLI {proto MAIN(|) 是 export {*}我的 %*SUB-MAIN-OPTS = :named-everywhere;多主(“设置") { ... }多主 (“开始" ,str :$to ..
发布时间:2021-07-02 19:31:03 其他开发

我可以在方法中更改 Perl 6 俚语吗?

Perl 6 Regex 是一种更具体的 方法,所以我有一个想法,也许我可以在产生同样事情的常规方法中做一些黑魔法的事情.我特别好奇在不改变任何语法的情况下这样做. 但是,查看 Perl6/Grammar.nqp(我几乎不明白),这真的不是继承的东西.我认为,根据我的阅读,Perl 6 语法在看到正则表达式声明符之一时会切换俚语(子语言).也就是说,不同的语法解析了 regex { ... ..
发布时间:2021-07-02 19:30:56 其他开发

在 Perl 6 中的方法和函数调用中使用冒号

我想知道冒号与 Perl 6 中的方法和函数调用有什么关系.作为记录,我使用的是基于 MoarVM 版本 2015.05 构建的 perl6 版本 2015.05-55-gd84bbbc. 我刚刚在 Perl6 规范测试(S32-io)(我添加了评论): $fh.print: "0123456789A";# 将“0123456789A"打印到文件中 据我所知,这相当于: $fh.pri ..
发布时间:2021-07-02 19:30:53 其他开发

如何导出 %*SUB-MAIN-OPTS

假设有一个包含 sub MAIN 的模块,可以提高启动速度.不幸的是,我无法以这种方式使用 named-anywhere 功能.我的导出是否损坏了或者我该怎么办? 使用v6.c;单元模块 My::Main;我们的 %*SUB-MAIN-OPTS 是 export = ('named-anywhere' => True);多子主()是出口{说 1;}multi sub MAIN('a', :$pa ..
发布时间:2021-07-02 19:30:48 其他开发

禁止无符号变量重新绑定是否有目的或好处?

在试图更好地理解无符号变量以及它们与 $ 有符号变量的区别时,我发现,与 $ 有符号变量不同,无符号变量在它们之后不能被反弹已经初始化: 我的 $a = 42;我的 $b := $a;$b := 42;# 没有异常产生我的 \c := $a;c := 42;# OUTPUT: «不能在这个左侧使用绑定运算符␤» 这是故意的吗?如果是这样,当 $ 标记变量没有被禁止时,禁止无标记变量重新绑定是否 ..
发布时间:2021-07-02 19:30:45 其他开发

Baggy add (+) 是否适用于 MixHash 权重?

我使用 MixHash 将两个哈希与 Bag add (+) 运算符组合在一起.这似乎有效 - 但是......我有点惊讶联合的结果需要重新强制回MixHash. 我的猜测是 Bag add (+) 中缀运算符首先将所有内容强制转换为 Bag 并将结果作为 Bag 返回.这对我来说可能有风险,因为我的一些权重是负的(因此首先是混合).这会正确添加负权重吗? 或者,是否有混合加 (+) ..
发布时间:2021-07-02 19:30:42 其他开发

在 Perl 6 中导出和绑定

为什么没有导出带有 := 绑定的变量的值? $ cat myModule.pm6我们的 $a 是 export = 42;我们的 $b 是 export := $a;$猫程序.p6使用我的模块;说 $a;说 $b;$ perl6 程序.p642(任何)# 为什么? 解决方案 our 范围的变量实际上只是一个词法变量(如 my),它 - 而不是为每个范围新创建一个 Scalar - 通过绑定到 ..
发布时间:2021-07-02 19:30:39 其他开发

如何将变量插入 Perl 6 正则表达式?

概要 05 提到 Perl 6 不会将变量插入到正则表达式中,但您可以将外部变量与模式相关联.据我所知,文档没有提到这个功能.我认为人们仍然希望以某种方式从字符串构建一个模式,所以我很好奇这将如何工作. 这是一个演示现在发生的情况的程序.我不知道这是应该发生的事情还是任何人的意图.我在模式中插入一个变量.如果您查看带有 .perl 的 $r,您会看到变量名称.然后,我应用模式并且它匹配.我改 ..
发布时间:2021-07-02 19:30:36 其他开发

如何在 perl 6 中“展平"列表列表?

假设我想要 a、b 和 c 中 2 个字母的所有排列. 我能做到: my @perm = .combinations(2)».permutations;说@perm;# [((a b) (b a)) ((a c) (c a)) ((b c) (c b))] 这很接近,但不完全是我需要的.我如何“展平"它以便我得到: # [(a b) (b a) (a c) (c a) (b c) (c ..
发布时间:2021-07-02 19:30:33 其他开发

如何在 Raku 中超时承诺?

我知道我可以安排一个 Promise 在给定的时间内保持 my $promise = Promise.in($seconds); 但是我如何安排它被破坏?具体来说,我正在考虑一个会“超时"的承诺,这样它就可以保留一定的时间,否则就会失败. 我可以用另一个 Promise 来做到这一点,就像这样: my $promise = Promise.new;...Promise.in($seco ..
发布时间:2021-06-22 19:21:40 其他开发

在 Perl6 中更改 Data::Printer 中的参数

我正在使用 Data::Printer 在 Perl6 中打印数据,这是一个很棒的包,但我正在尝试更改参数,但我无法更改. 例如,我想要: HG00112 {获得网站{9:10162 0,9:10272 var{HG00112}{gained_site}{9:10162},9:10326 var{HG00112}{gained_site}{9:10162},...}(绑定到 Perl6:: ..
发布时间:2021-06-21 19:13:38 其他开发

从 Inline::Perl5 返回的列表给出了项目的计数,而不是列表

一些简单的 Inline::Perl5 代码返回一个列表,但它似乎返回项目的计数而不是实际列表. 改变涉及的项目数量会改变计数. 使用内联::Perl5;我的 $p5 = Inline::Perl5.new;我的 $perl5_code = q:to/END/;子 p5_data {我的@monsters = qw(哥斯拉斑点刺痛孔多丽丝迪);返回@monsters;}p5_data(); ..
发布时间:2021-06-15 20:46:24 其他开发

如何使用 Perl 6 运行外部程序?(例如,像 Perl 5 中的“系统")

我可以在 Perl 5 中使用 system 来运行外部程序.我喜欢将 system 视为 Perl 中的微型“Linux 命令行".但是,我在 Perl 6 中找不到 system 的文档.什么是等效的? 解决方案 除了使用 shell 或 run,它替换了 Perl 5 中的 system,你也可以使用NativeCall 调用 libc system 函数. 在我的 Windo ..
发布时间:2021-06-15 20:23:07 其他开发

perl5 库是否可以在 perl6 中导入?

我知道 perl6 将明确允许导入 perl5 代码,但我不能这样做. 这是 perl6 代码 使用 perl5:Net::FTP; 它报告了一个错误 是否有任何配置问题或尚未准备好? 解决方案 使用 Inline::Perl5 将任意 Perl 代码嵌入 Raku 或 use Perl 库,就像它们是 Raku 库一样. Inline::Perl5 在 MoarVM ..
发布时间:2021-06-15 20:22:55 其他开发

获取当前进程的 perl 可执行文件的绝对路径

有没有办法获得当前进程的 Perl 可执行文件的绝对路径? $^X 会给我 Perl 可执行文件名称,但文档指出它有时会是一个相对路径,例如在 OS X 上这似乎是正确的. ExtUtils::MakeMaker 似乎有一些魔法来找到绝对路径,因为它在我的 OS X 上生成的 Makefile 包含 PERL =/usr/local/bin/perlFULLPERL =/usr/lo ..
发布时间:2021-06-15 20:07:03 其他开发