rakudo相关内容

强制执行来自元模型的单个实例

我知道从类级别确保单个实例要容易得多,而且Jonathan Stowe提供了出色的Staticish模块,它通过使用角色来实现相同的功能,但我只想尝试更好地理解如何处理class higher order working,主要是为了FOSDEM演讲。我可以想出几种在元模型级别执行操作的方法,但最终我想出了以下方法: my class MetamodelX::Singleton is Meta ..
发布时间:2022-07-12 18:05:55 其他开发

将.fmt行为与嵌套列表混淆

docs说fmt 返回一个字符串,其中列表中的每个元素都已根据$format[第一个参数]进行了格式化,并且每个元素由$separator[第二个参数]分隔。 基于该描述,我希望能够对列表列表调用.fmt,然后为内部列表中的每个元素传递包含%指令的printf样式的格式字符串。但这并不管用。 如果您告诉我我对^的看法是错误的,我会预料到.fmt会自动平整其参数,因此每个参数都会被格式 ..
发布时间:2022-06-18 15:15:14 其他开发

重新约束的规则是什么?

[注意:我是根据Rakudo的旧版本提出这个问题的。正如the accepted answer中所解释的,令人困惑的输出是have now been resolvedRakudo错误的结果。我已将以下问题的原始版本留作历史参考。] Raku有时禁止重新绑定;以下两行 sub f($a) { $a := 42 } my var = 'foo'; var := 'not-foo'; 生 ..
发布时间:2022-04-17 20:00:08 其他开发

当我尝试使用 Rakudo 运行我的脚本时,为什么会出现“除以零"错误?

我刚刚构建了 Rakudo 和 Parrot,这样我就可以玩它并开始学习 Perl 6.我下载了 Perl 6 书并愉快地输入了第一个演示程序(网球锦标赛示例). 当我尝试运行程序时,出现错误: 除以零当前指令:'' pc -1((未知文件):-1) 我在构建目录中有我的 perl6 二进制文件.我在rakudo build目录下加了一个scripts目录: rakudo|- per ..
发布时间:2021-07-02 19:36:38 其他开发

require 的行为(静态 + 动态)[RAKU]

我的问题与 require 在与所需命名空间的静态或动态解析一起使用时的行为有关. 我会尽量表达我对事物的理解: [ 1 ] 使用带有文字的“require" { 需要模块;} 在这种情况下,编译器会检查 MODULE 是否已经被声明为一个符号.如果没有,编译器会声明它,并将它绑定到一个空的占位符包,它刚刚为这个“需要"创建了 {我的 $response = ::('MODUL ..
发布时间:2021-07-02 19:36:08 其他开发

如何禁用 Perl 6 REPL 创建 .precomp

每次我运行 perl6 进入 REPL 模式时,它都会创建一个 .precomp 目录,这也减慢了迅速的.如果 .precomp 目录已经存在,则提示几乎立即出现,否则 perl6 需要几秒钟来创建它. 有没有办法禁用这个功能? 解决方案 检查您是否有 PERL6LIB 环境变量集,以及它是否包含 ..如果我设置了它,我可以准确地产生你遇到的行为.解决方案是从您的 PERL6LIB ..
发布时间:2021-07-02 19:36:05 其他开发

Raku 正则表达式:如何在前瞻中使用捕获组

如何在先行断言中使用捕获组? 此代码: 说“ab"~~ m/(a) /; 返回: 「a」0 =>“一种" 但我希望也能捕获 'b'. 有没有办法做到这一点? 我不想将 'b' 留在前瞻之外,因为我不想让 'b' 成为匹配的一部分. 有没有办法捕获“b"但仍将其保留在比赛之外? 注意: 我尝试使用 Raku 的捕获标记,例如: ..
发布时间:2021-07-02 19:35:20 其他开发

并发,一次对多个供应做出反应

请考虑下面的代码.为什么这个输出是“BABABA"而不是“AABABAA"/“AABAAAB"?当其中任何一个发生事件时,这两个电源不应该并行运行并立即触发吗? 我的 $i = 0;我的 $supply1 = supply { loop { await Promise.in(3);如果 $i++> 完成5;发射(“B");} };我的 $supply2 = supply { loop { awa ..
发布时间:2021-07-02 19:34:56 其他开发

如何使用 perl 6 创建独立的可执行文件?

旧的 Perl 6 常见问题 说:“Rakudo,一个基于 Parrot 的 Perl 6 编译器,允许编译为字节码,并且存在一个小包装器,可以将字节码文件打包并复制到单个可执行文件中." 因此,可以创建一个独立的可执行文件,但我找不到任何文档来解释如何进行此操作,或者是否仍然可能.所以,我转向你.将 Perl 6 代码转换为可在未安装 Perl 6 的系统上运行的独立可执行文件需要哪些适当 ..
发布时间:2021-07-02 19:33:01 其他开发

您如何从它们所属的类型之外访问私有方法或属性?

在一些实际可以接受的极少数情况下,例如在单元测试中,您可能想要获取或设置私有属性的值,或者在不可行的情况下调用某个类型的私有方法.真的不可能吗?如果没有,你怎么做? 解决方案 有两种方法可以访问类型的私有方法,一种方法是获取私有属性.除了第一种调用私有方法的方法外,所有都需要元编程,其解释仍然涉及元编程. 作为一个例子,我们将实现一个使用私有属性隐藏值的 Hidden 类和一个使用 ..
发布时间:2021-06-02 20:39:20 其他开发

实际上捕获异常而不创建GOTO

查看我的Raku代码,我意识到我几乎从不使用 CATCH 块来实际捕获/处理错误.相反,我使用 try 块处理错误并测试未定义的值.我使用 CATCH 块的唯一目的是以不同的方式记录错误.我似乎并不孤单,只是看着CATCH 块> Raku docs ,除了打印消息外,几乎没有任何其他方式可以处理错误.(Rakudo中的大多数 CATCH 块都是一样的.) 尽管如此,我还是想更好地了解如何使用 ..
发布时间:2021-05-06 18:41:32 其他开发

保留嵌套命名参数的默认值

我怀疑这个问题很容易回答,答案是“否".但是,我想确保我没有丢失任何东西. 考虑以下代码: sub f(:$ a ='foo'){说$ a}子g(:$ a){f:$ a}G();#输出:«(任何)» 是否有一种很好的方法来更改& f 或& g 的签名/正文,以便打印出 foo 而不是有吗? 我知道有两种方法可以使& f 使用 $ a 的默认值,但这两种方法都不是很好. 选 ..
发布时间:2021-04-30 18:30:47 其他开发

关于懒惰[RAKU]

Raku文档中指出,正在对聚集结构进行惰性评估.在以下示例中,我很难得出关于结构的惰性的结论: 说“迭代到无穷大是:",(1 ... Inf).说“收集者是:",收集{取0;我的($ last,$ this)= 0,1;环形 {拿$ this;($ last,$ this)= $ this,$ last + $ this;}}.什么;说 ' - - - - - - - - - ..
发布时间:2021-04-16 20:12:11 其他开发

如何使用Perl 6中的Perl 5模块?

是否可以使用Rakudo Perl 6的CPAN中的Perl 5模块? 例如,如何在Perl 6中使用尚未移植的古老的Perl 5模块CGI。 更新: 还有一些来自早期Perl 6模块的时髦代码: 使用CGI:from 指令用来唤起某种Perl 5兼容性层?似乎找不到有关它的任何文档。 解决方案 ..
发布时间:2020-10-10 21:46:26 其他开发