raku相关内容

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

我知道从类级别确保单个实例要容易得多,而且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 其他开发

代币和规则的真正区别是什么?

我被Raku的内置语法吸引住了,我想我可以玩玩它,写一个简单的电子邮件地址解析器,唯一的问题是:我无法让它工作。 我尝试了无数次迭代,才找到了真正有效的东西,我很难理解为什么。 归根结底就是将token更改为rule。 以下是我的示例代码: grammar Email { token TOP { '@' [ '.']* ..
发布时间:2022-05-14 13:25:53 其他开发

重新约束的规则是什么?

[注意:我是根据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 其他开发

如何将raku-e和-n用于多个文件全局

我想在Windows上用Raku执行以下操作 raku -n -e ".say if /mydatabegin/;" *.file 无法打开文件C:..*.File:参数无效 球体不会被解释为球体。我猜这是因为Windows需要你的程序自己来做球化?那么,是否存在我可能遗漏或重定向的预处理指令或函数、甚至开关,或者允许在保持-n(或-p)和-e开关的简单性的同时扩展GLOB的东西? ..
发布时间:2022-04-05 18:17:07 其他开发

在 Raku 中使用 Perl 5 模块 Data::Printer 的 `show_tied` 选项时,如何关闭它?

我在 Perl 中使用了 CPAN Perl 模块 Data::Printer (DP).效果很好. 现在我想在 Raku 代码中使用它. 当我使用 :from 功能导入它然后使用它运行代码时,注释 (tied to Perl6::Hash) 被附加到哈希的显示.1 正如 DP 的 CPAN 文档 所示,此注释由选项 show_tied 控制.我想将其 off(设置 ..
发布时间:2022-01-18 21:32:01 其他开发

那是 Perl 6 哈希还是块?

这是一个可能会咬到初学者的意外行为.首先,这是故意的吗?其次,Perl 6 还使用哪些其他东西来猜测要创建哪个对象?它是开始认为是 Block 还是 Hash 并稍后更改,还是最终决定? 你可以用大括号和粗箭头构造一个Hash: 我的 $color-name-to-rgb = {'红色' =>'FF0000',};把 $color-name-to-rgb.^name;# 哈希 使用其他 ..
发布时间:2021-12-27 16:40:45 其他开发

perl6 语法操作:如果不使用 $/则无法进行任何操作

我写了一个测试程序,现在看来如果不使用$/方法签名因为我必须在方法内部使用 .match ,我不能再做任何事情了.我做错了什么? 另一个问题是,如果.match 设置了$/,并且$/ 是只读的,那么我不能有$/ 在包含 .match 语句的方法的签名中,并且我不能在方法内部有多个 .match 因为每个 .match 将尝试设置只读 $/.这样编程会很别扭. 这是里面只有一个.matc ..
发布时间:2021-11-30 12:21:11 其他开发

Perl 6 块是一个参数还是一个参数?

在没有显式签名的块中,Perl 6 区分参数和无参数的方法是什么?我对此没有任何实际用途,但我很好奇. 没有显式签名的块将值放入$_: my &block := { put "参数是 $_" }; 签名实际上是;;$_?是原始的.这是一个可选参数.@_ 变量未在块中定义,因为没有显式签名. 没有参数,其中 $_ 将是未定义的: &block();# 没有参数 但也有一种单参数情 ..
发布时间:2021-11-17 05:38:55 其他开发

有没有办法在 Perl 6 程序中获取所有已知类型的列表?

有没有办法获得 Perl 6 程序知道的所有已知类型(内置、定义、加载等等)的列表?我脑子里没有特定的任务,这与确定是否已经定义了我已经知道的类型有点不同. 解决方案 这应该可以解决问题: .say for (|CORE::, |UNIT::, |OUTERS::, |MY::).grep({ .key eq .value.^name }).map(*.key).独特的; 说明: ..
发布时间:2021-09-11 20:08:23 其他开发

特质是否仅适用于对象?

再次在这个问题的尾部,我正在尝试做一个will特质工作,使用这个(打高尔夫球)代码: sub show-value( $a-var ) {说“{$a-var.^name} 的值是",$a-var.gist;}子做的东西(){ENTER { 说“进去";}我们的 $bar 将输入 { show-value($_) };$bar = "baz";离开{说“离开";}}做东西(); 这只是打印“Go ..
发布时间:2021-09-09 19:04:37 其他开发

移相器特性何时运行?

will移相器特征示例显示此代码: 我们的 $h 会输入 { .rememberit() } 会撤销 { .forgetit() }; 这要么被误解,要么根本不是真正的用例.如果它被误解了,我会说它 enter s 块,它被分配了一个变量.如果它不是一个真正的用例,它会调用一个未定义变量的方法.这似乎是发生了什么: 我们的善行将进入{说(“运行");if Backtrace.new.grep ..
发布时间:2021-09-09 19:04:28 其他开发

我可以捕获 RUN-MAIN 中使用的例程的返回值吗?

我想要一个脚本来运行从模块导出的子程序,导出的子程序在脚本中作为 MAIN 运行.子例程完成了我想要的一切,只是它返回结果而不是打印结果. RUN-MAIN 似乎实现了我的大部分目标,但我不确定如何获取例程的返回值. 有没有办法可以捕获要打印给 RUN-MAIN 的例程的输出?RUN-MAIN 是处理这类事情的正确方法吗? 解决方案 Redispatch 可以在包装的例程中使用 ..
发布时间:2021-08-31 20:47:51 其他开发

是否需要修改脚本才能使用CommaIDE的时间线可视化

我正在从 CommaIDE 运行一个并发脚本,它只显示“等待时间线数据",而状态行显示“时间线连接错误:无法获取时间线数据:java.net.ConnectException:拒绝连接"我需要在某处做任何额外的配置吗?这是事件日志中的错误: 11:05 时间线连接错误:无法获取时间线数据:java.net.ConnectException:Conexión rehusada 解决方案 我 ..
发布时间:2021-07-02 19:37:28 其他开发

“无法获取时间线数据"在逗号 IDE 中使用时间线可视化时

在实现对 关于如何设置时间可视化脚本的问题 这个项目(它对已发布的Log::Timeline 允许我从程序本身设置日志文件),我仍然遇到相同的错误 12:18 时间线连接错误:无法获取时间线数据:java.net.ConnectException:Conexión rehusada (表示拒绝连接).我还检查了创建的文件,它们是空的,没有收到任何东西.我用它来记录: class Events ..
发布时间:2021-07-02 19:37:25 其他开发

为什么我的一些范围是疯狂的?

我尝试将范围的常见字符串描述(例如 1-9)解析为实际范围(例如 1 .. 9),但在包含时经常得到奇怪的结果两位数.例如,1-10 产生单个值 1 而不是十个值的列表,11-20 给了我四个值(11 10 21 20),其中一半甚至不在预期的数值范围内: put get_range_for('1-9');put get_range_for('1-10');put get_range_for(' ..
发布时间:2021-07-02 19:37:22 其他开发