raku相关内容
我知道从类级别确保单个实例要容易得多,而且Jonathan Stowe提供了出色的Staticish模块,它通过使用角色来实现相同的功能,但我只想尝试更好地理解如何处理class higher order working,主要是为了FOSDEM演讲。我可以想出几种在元模型级别执行操作的方法,但最终我想出了以下方法: my class MetamodelX::Singleton is Meta
..
docs说fmt 返回一个字符串,其中列表中的每个元素都已根据$format[第一个参数]进行了格式化,并且每个元素由$separator[第二个参数]分隔。 基于该描述,我希望能够对列表列表调用.fmt,然后为内部列表中的每个元素传递包含%指令的printf样式的格式字符串。但这并不管用。 如果您告诉我我对^的看法是错误的,我会预料到.fmt会自动平整其参数,因此每个参数都会被格式
..
我被Raku的内置语法吸引住了,我想我可以玩玩它,写一个简单的电子邮件地址解析器,唯一的问题是:我无法让它工作。 我尝试了无数次迭代,才找到了真正有效的东西,我很难理解为什么。 归根结底就是将token更改为rule。 以下是我的示例代码: grammar Email { token TOP { '@' [ '.']*
..
[注意:我是根据Rakudo的旧版本提出这个问题的。正如the accepted answer中所解释的,令人困惑的输出是have now been resolvedRakudo错误的结果。我已将以下问题的原始版本留作历史参考。] Raku有时禁止重新绑定;以下两行 sub f($a) { $a := 42 } my var = 'foo'; var := 'not-foo'; 生
..
我想在Windows上用Raku执行以下操作 raku -n -e ".say if /mydatabegin/;" *.file 无法打开文件C:..*.File:参数无效 球体不会被解释为球体。我猜这是因为Windows需要你的程序自己来做球化?那么,是否存在我可能遗漏或重定向的预处理指令或函数、甚至开关,或者允许在保持-n(或-p)和-e开关的简单性的同时扩展GLOB的东西?
..
这个问题始于我试图弄清楚为什么在运行时创建的元件对EVAL不可用。 out-EVAL.raku #!/usr/bin/env raku use MONKEY-SEE-NO-EVAL; package Foobar { our $foo = 'foo'; our sub eval { say OUTER::; EVAL "say $bar"; } }
..
有时我有一个很长的列表,我想检查字符串是否与列表中的任何内容匹配。我正在尝试对正则表达式中的一个交点进行内插。它们都是错误。 say "12345" ~~ m/ / Cannot resolve caller MAKE_REGEX(Int, Bool, Bool, Int, PseudoStash); none of these signatures ma
..
我在 Perl 中使用了 CPAN Perl 模块 Data::Printer (DP).效果很好. 现在我想在 Raku 代码中使用它. 当我使用 :from 功能导入它然后使用它运行代码时,注释 (tied to Perl6::Hash) 被附加到哈希的显示.1 正如 DP 的 CPAN 文档 所示,此注释由选项 show_tied 控制.我想将其 off(设置
..
从Iterable 文档页面中的示例开始 角色 DNA 做 Iterable {方法迭代器(){ self.comb.iterator }};我的@a 做 DNA = 'GAATCC';.say for @a;# 输出:«GAATCC» 我发现它使用 @ 声明很奇怪,所以我将其更改为 natural 声明字符串的方式,$: 我的 $a 做 DNA = 'GAATCC'; 但这失
..
这是一个可能会咬到初学者的意外行为.首先,这是故意的吗?其次,Perl 6 还使用哪些其他东西来猜测要创建哪个对象?它是开始认为是 Block 还是 Hash 并稍后更改,还是最终决定? 你可以用大括号和粗箭头构造一个Hash: 我的 $color-name-to-rgb = {'红色' =>'FF0000',};把 $color-name-to-rgb.^name;# 哈希 使用其他
..
例如,当我运行我的简单代码时,我已经安装了 Cro 模块: my %headers = {Authorization =>OAuth 领域="", oauth_consumer_key="xxxxxxxxxxxxxxxx", oauth_nonce="29515362", oauth_signature="KojMlteEAHlYjMcLc6LFiOwRnJ8%3D", oauth_signa
..
我写了一个测试程序,现在看来如果不使用$/方法签名因为我必须在方法内部使用 .match ,我不能再做任何事情了.我做错了什么? 另一个问题是,如果.match 设置了$/,并且$/ 是只读的,那么我不能有$/ 在包含 .match 语句的方法的签名中,并且我不能在方法内部有多个 .match 因为每个 .match 将尝试设置只读 $/.这样编程会很别扭. 这是里面只有一个.matc
..
在没有显式签名的块中,Perl 6 区分参数和无参数的方法是什么?我对此没有任何实际用途,但我很好奇. 没有显式签名的块将值放入$_: my &block := { put "参数是 $_" }; 签名实际上是;;$_?是原始的.这是一个可选参数.@_ 变量未在块中定义,因为没有显式签名. 没有参数,其中 $_ 将是未定义的: &block();# 没有参数 但也有一种单参数情
..
有没有办法获得 Perl 6 程序知道的所有已知类型(内置、定义、加载等等)的列表?我脑子里没有特定的任务,这与确定是否已经定义了我已经知道的类型有点不同. 解决方案 这应该可以解决问题: .say for (|CORE::, |UNIT::, |OUTERS::, |MY::).grep({ .key eq .value.^name }).map(*.key).独特的; 说明:
..
再次在这个问题的尾部,我正在尝试做一个will特质工作,使用这个(打高尔夫球)代码: sub show-value( $a-var ) {说“{$a-var.^name} 的值是",$a-var.gist;}子做的东西(){ENTER { 说“进去";}我们的 $bar 将输入 { show-value($_) };$bar = "baz";离开{说“离开";}}做东西(); 这只是打印“Go
..
will移相器特征示例显示此代码: 我们的 $h 会输入 { .rememberit() } 会撤销 { .forgetit() }; 这要么被误解,要么根本不是真正的用例.如果它被误解了,我会说它 enter s 块,它被分配了一个变量.如果它不是一个真正的用例,它会调用一个未定义变量的方法.这似乎是发生了什么: 我们的善行将进入{说(“运行");if Backtrace.new.grep
..
我想要一个脚本来运行从模块导出的子程序,导出的子程序在脚本中作为 MAIN 运行.子例程完成了我想要的一切,只是它返回结果而不是打印结果. RUN-MAIN 似乎实现了我的大部分目标,但我不确定如何获取例程的返回值. 有没有办法可以捕获要打印给 RUN-MAIN 的例程的输出?RUN-MAIN 是处理这类事情的正确方法吗? 解决方案 Redispatch 可以在包装的例程中使用
..
我正在从 CommaIDE 运行一个并发脚本,它只显示“等待时间线数据",而状态行显示“时间线连接错误:无法获取时间线数据:java.net.ConnectException:拒绝连接"我需要在某处做任何额外的配置吗?这是事件日志中的错误: 11:05 时间线连接错误:无法获取时间线数据:java.net.ConnectException:Conexión rehusada 解决方案 我
..
在实现对 关于如何设置时间可视化脚本的问题 这个项目(它对已发布的Log::Timeline 允许我从程序本身设置日志文件),我仍然遇到相同的错误 12:18 时间线连接错误:无法获取时间线数据:java.net.ConnectException:Conexión rehusada (表示拒绝连接).我还检查了创建的文件,它们是空的,没有收到任何东西.我用它来记录: class Events
..
我尝试将范围的常见字符串描述(例如 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('
..