rakudo相关内容
我知道从类级别确保单个实例要容易得多,而且Jonathan Stowe提供了出色的Staticish模块,它通过使用角色来实现相同的功能,但我只想尝试更好地理解如何处理class higher order working,主要是为了FOSDEM演讲。我可以想出几种在元模型级别执行操作的方法,但最终我想出了以下方法: my class MetamodelX::Singleton is Meta
..
docs说fmt 返回一个字符串,其中列表中的每个元素都已根据$format[第一个参数]进行了格式化,并且每个元素由$separator[第二个参数]分隔。 基于该描述,我希望能够对列表列表调用.fmt,然后为内部列表中的每个元素传递包含%指令的printf样式的格式字符串。但这并不管用。 如果您告诉我我对^的看法是错误的,我会预料到.fmt会自动平整其参数,因此每个参数都会被格式
..
[注意:我是根据Rakudo的旧版本提出这个问题的。正如the accepted answer中所解释的,令人困惑的输出是have now been resolvedRakudo错误的结果。我已将以下问题的原始版本留作历史参考。] Raku有时禁止重新绑定;以下两行 sub f($a) { $a := 42 } my var = 'foo'; var := 'not-foo'; 生
..
我刚刚构建了 Rakudo 和 Parrot,这样我就可以玩它并开始学习 Perl 6.我下载了 Perl 6 书并愉快地输入了第一个演示程序(网球锦标赛示例). 当我尝试运行程序时,出现错误: 除以零当前指令:'' pc -1((未知文件):-1) 我在构建目录中有我的 perl6 二进制文件.我在rakudo build目录下加了一个scripts目录: rakudo|- per
..
我的问题与 require 在与所需命名空间的静态或动态解析一起使用时的行为有关. 我会尽量表达我对事物的理解: [ 1 ] 使用带有文字的“require" { 需要模块;} 在这种情况下,编译器会检查 MODULE 是否已经被声明为一个符号.如果没有,编译器会声明它,并将它绑定到一个空的占位符包,它刚刚为这个“需要"创建了 {我的 $response = ::('MODUL
..
每次我运行 perl6 进入 REPL 模式时,它都会创建一个 .precomp 目录,这也减慢了迅速的.如果 .precomp 目录已经存在,则提示几乎立即出现,否则 perl6 需要几秒钟来创建它. 有没有办法禁用这个功能? 解决方案 检查您是否有 PERL6LIB 环境变量集,以及它是否包含 ..如果我设置了它,我可以准确地产生你遇到的行为.解决方案是从您的 PERL6LIB
..
如何在先行断言中使用捕获组? 此代码: 说“ab"~~ m/(a) /; 返回: 「a」0 =>“一种" 但我希望也能捕获 'b'. 有没有办法做到这一点? 我不想将 'b' 留在前瞻之外,因为我不想让 'b' 成为匹配的一部分. 有没有办法捕获“b"但仍将其保留在比赛之外? 注意: 我尝试使用 Raku 的捕获标记,例如:
..
请考虑下面的代码.为什么这个输出是“BABABA"而不是“AABABAA"/“AABAAAB"?当其中任何一个发生事件时,这两个电源不应该并行运行并立即触发吗? 我的 $i = 0;我的 $supply1 = supply { loop { await Promise.in(3);如果 $i++> 完成5;发射(“B");} };我的 $supply2 = supply { loop { awa
..
Raku 的正则表达式应该匹配最长的标记. 事实上,在这段代码中可以看到这种行为: raku -e "'AA' ~~ m/A {say 1}|AA {say 2}/";# 2 但是,当文本在变量中时,它的工作方式似乎不同: raku -e "my $a = 'A';我的 $b = 'AA';'AA' ~~ m/$a {say 1}|$b {say 2}/"#1 为什么他们的工作方式不
..
旧的 Perl 6 常见问题 说:“Rakudo,一个基于 Parrot 的 Perl 6 编译器,允许编译为字节码,并且存在一个小包装器,可以将字节码文件打包并复制到单个可执行文件中." 因此,可以创建一个独立的可执行文件,但我找不到任何文档来解释如何进行此操作,或者是否仍然可能.所以,我转向你.将 Perl 6 代码转换为可在未安装 Perl 6 的系统上运行的独立可执行文件需要哪些适当
..
在一些实际可以接受的极少数情况下,例如在单元测试中,您可能想要获取或设置私有属性的值,或者在不可行的情况下调用某个类型的私有方法.真的不可能吗?如果没有,你怎么做? 解决方案 有两种方法可以访问类型的私有方法,一种方法是获取私有属性.除了第一种调用私有方法的方法外,所有都需要元编程,其解释仍然涉及元编程. 作为一个例子,我们将实现一个使用私有属性隐藏值的 Hidden 类和一个使用
..
查看我的Raku代码,我意识到我几乎从不使用 CATCH 块来实际捕获/处理错误.相反,我使用 try 块处理错误并测试未定义的值.我使用 CATCH 块的唯一目的是以不同的方式记录错误.我似乎并不孤单,只是看着CATCH 块> Raku docs ,除了打印消息外,几乎没有任何其他方式可以处理错误.(Rakudo中的大多数 CATCH 块都是一样的.) 尽管如此,我还是想更好地了解如何使用
..
我怀疑这个问题很容易回答,答案是“否".但是,我想确保我没有丢失任何东西. 考虑以下代码: sub f(:$ a ='foo'){说$ a}子g(:$ a){f:$ a}G();#输出:«(任何)» 是否有一种很好的方法来更改& f 或& g 的签名/正文,以便打印出 foo 而不是有吗? 我知道有两种方法可以使& f 使用 $ a 的默认值,但这两种方法都不是很好. 选
..
Raku文档中指出,正在对聚集结构进行惰性评估.在以下示例中,我很难得出关于结构的惰性的结论: 说“迭代到无穷大是:",(1 ... Inf).说“收集者是:",收集{取0;我的($ last,$ this)= 0,1;环形 {拿$ this;($ last,$ this)= $ this,$ last + $ this;}}.什么;说 ' - - - - - - - - -
..
是否可以使用Rakudo Perl 6的CPAN中的Perl 5模块? 例如,如何在Perl 6中使用尚未移植的古老的Perl 5模块CGI。 更新: 还有一些来自早期Perl 6模块的时髦代码: 使用CGI:from 指令用来唤起某种Perl 5兼容性层?似乎找不到有关它的任何文档。 解决方案
..
use java::util::zip::CRC32:from; my $crc = CRC32.new(); for 'Hello, Java'.encode('utf-8') { $crc.'method/update/(B)V'($_); } say $crc.getValue(); 不幸的是,这不起作用 Method 'method/update/(B)V'
..