raku相关内容

为什么 Perl 6 序列 'A' ... 'AA' 只有一个元素?

今天我注意到序列 'A' ... 'AA' 只包含一个元素: >'A' ... 'AA'(一种) 我认为它会包含 27:字母加上最后的 AA. 如果我明确提供一个生成器,它会: >'A', *.succ ... 'AA'(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA) 文档说默认生成器是 *.succ 或 *.pred ..
发布时间:2021-07-02 19:34:17 其他开发

在 Raku 中混合私有和公共属性和访问器

#私有属性示例C类{有 $!w;#私有属性多方法 w { $!w } #getter 方法多方法 w ( $_ ) { #setter 方法警告“不要去改变我的 w!";#一些侧面动作$!w = $_}}我的 $c = C.new$c.w( 42 )说 $c.w #prints 42$c.w: 43说 $c.w #prints 43#但不是$c.w = 44无法修改不可变的 Int (43) 到 ..
发布时间:2021-07-02 19:34:14 其他开发

Raku 中 (Any) 的含义是什么 - 特别是 ()?

这是 Raku 的实验: >我的 $x(任何)>我的 $y=11>我的@a=[1, 2][1 2]>我的 %h=a=>'b'{a =>乙}>除非 $x,否则说“nil"零 我可以看到 [] 表示数组文字,{} 表示哈希文字. 我还可以看到 (Any) 的行为类似于 nil - 在上面显示的布尔上下文中返回 false. 我觉得 (Any) 很有趣.文档告诉我 Any 只是 Raku ..
发布时间:2021-07-02 19:34:11 其他开发

Int 数组与 Int 数组数组的 multi sub

我想要一个 multi sub,其中一个用于 Int 数组,另一个 multi sub 用于 Int 数组. 这似乎可以解决问题: multi sub abc(Int @array) { 说 10;}multi sub abc(Array[Int] @array) { 说 20;} 但是,构建满足这些约束的文字非常冗长: abc Array[Int].new([1,2,3]);# -> ..
发布时间:2021-07-02 19:34:03 其他开发

如何像 Python 在 Perl 6 中那样对字符串进行切片?

在 Python 中,我可以像这样拼接字符串: solo = 一只快速的棕色狐狸跳过懒狗独奏[3:5] 我知道 substr 和 comb 就足够了,我想知道是否可能,但是.我应该使用角色来执行此操作吗? 解决方案 如何对字符串进行切片 字符串(表示为类 Str)在 Perl 6 中被视为单个值而不是位置数据结构,因此不能使用内置的 [ ] 进行索引/切片 数组索引运算符. ..
发布时间:2021-07-02 19:34:00 其他开发

如何在 Perl 6 中动态定义变量名?

我想给一个变量取一个名字,在另一个字符串变量中:my $name = '$a'; 或者干脆 my $name = 'a'; 如何制作变量并使用它?我的意思是这样的(但它不起作用): my $name = '$a';我的 {$name} = 1;# 不起作用说 $a;# 应该是 1 更一般的情况.我有一个变量名称列表,比如 my @names = '$aa' ... '$cc'; 如何声明和使用 ..
发布时间:2021-07-02 19:33:57 其他开发

在 Perl 6 中将正则表达式作为参数传递

这个问题的延续,可能还有一个更奇怪的问题. 我可以例如使用 sub 连接两个 regex?(当然,我明白,如何用 regex 做到这一点) 下面的代码是完全错误的,但我希望它能解释我想做什么: 我的正则表达式 sub s12 ( $c, $v) {返回//}我的正则辅音 { }我的正则元音 { }我的正则表达式 op ..
发布时间:2021-07-02 19:33:54 其他开发

使用 Perl6 语法解析二进制结构

使用 Perl6 解析二进制结构的最佳选择是什么. 在 Perl5 中,我们在 Perl6 上有打包/解包方法,它们似乎是实验性的 是否可以使用 Perl6 语法来解析二进制数据,假设我有一个文件,其中包含以下二进制格式的记录: 结构记录{短 int ut_type;字符 ut_line[UT_LINESIZE];字符 ut_id[4];字符 ut_user[UT_NAMESIZE] ..
发布时间:2021-07-02 19:33:51 其他开发

perl6 'do(file)' 等效

在 perl5 中,我曾经为这样的配置文件“做(文件)": ---script.pl start ---我们的@conf = ();做'/path/some_conf_file';...foreach $item (@conf) {$item->{规则} ......---script.pl 结束------/path/some_conf_file 开始---# 任意代码来“填充"@conf@c ..
发布时间:2021-07-02 19:33:49 其他开发

从本机指针中获取数据

将数据放入 Perl 6 Native 指针没什么大不了的: sub memcpy( Pointer[void] $source, Pointer[void] $destination, int32 $size ) 是原生的 { * };我的 Blob $blob = Blob.new(0x22, 0x33);我的指针[void] $src-memcpy = nativecast(Pointer ..
发布时间:2021-07-02 19:33:46 其他开发

callwith 和 samewith 应该做什么?

callwith 和 samewith 应该做什么?我认为 callwith 应该运行一个与当前子程序同名的子程序,但是使用我传递给它的参数. 来自文档: callwith 使用提供的参数调用下一个匹配的候选由用户并返回该候选人的返回值. 对我来说,这听起来像是在 callwith($x)MAIN 子程序(即 MAIN($a,$b))中/code> 会调用 MAIN($x). ..
发布时间:2021-07-02 19:33:43 其他开发

如何将具有关联作用的类哈希对象传递给需要哈希的构造函数?

我正在试验自定义哈希.以下是尝试为类似配置的散列实现更简单的查找: 使用v6;类 X::Config::KeyNotFound 是异常 {方法消息(){“未找到密钥!";}}# 允许使用 '.' 进行嵌套查找的哈希来分隔键.#(这意味着键本身不能包含点)# 例如:## %h = Config.new(%(a => %(b => 1)));# 我的 $foo = %h;# ..
发布时间:2021-07-02 19:33:40 其他开发

如何在 Perl 6 中删除变音符号

两个相关的问题.Perl 6 非常聪明,它将字素理解为一个字符,无论是一个 Unicode 符号(如 ä、U+00E4)还是两个或更多组合符号(如p̄ 和 ḏ̣).这个小代码 我的@symb;@symb.push("ä");@symb.push("p" ~ 0x304.chr);# "p̄"@symb.push("ḏ" ~ 0x323.chr);# "ḏ̣"为@symb 说“$_ 有 {$_.c ..
发布时间:2021-07-02 19:33:37 其他开发

使用 Perl6 散列键定义与存在

我正在从 Perl5 学习 Perl6. 我在看副词 :exists https://docs.perl6.org/type/Hash#:exists 但没有 :defined 副词 但我很担心,因为 perl5 的 exists &defined:存在和定义有什么区别? 我怎样才能在 Perl6 中做这样的事情? if (定义 $hash{key}) {$hash{key}+ ..
发布时间:2021-07-02 19:33:34 其他开发

使用从文件加载的定义启动 REPL

有没有办法使用从文件加载的定义来启动 Perl 6 REPL? 即假设我在 test.p6 中有这个: sub abc() { 说 123;} 我希望能够启动 perl6 REPL 并加载该文件,以便我可以交互地使用 abc. 解决方案 我想最简单的方法是将您的代码放在 .pm6 文件中,例如./Foo.pm6,用is export标记有问题的子程序,然后像这样启动Rakudo ..
发布时间:2021-07-02 19:33:31 其他开发

如果需要该文件,Perl 6 应该运行 MAIN 吗?

这是一个简短的 Perl 6 程序,它声明了一个 MAIN 子例程.如果我直接执行程序,我应该只看到输出: $ cat main.pm6sub MAIN { 说“作为程序调用!"} 而且我直接执行程序时看到了输出: $ perl6 main.pm6作为程序调用! 如果我将其作为模块加载,则看不到输出: $ perl6 -I.-Mmain -e “说‘嘿’"嘿 同样,如果我在程序内部使用 ..
发布时间:2021-07-02 19:33:28 其他开发

如何在 Perl6 中加载 Perl5 的 Data::Printer?

我一直在尝试将 Perl5 模块 Data::Printer 加载到 Perl6 中,但遇到了困难. 我之前问过这个问题,无法使用内联导入 Perl5 模块:Perl5 转换为 Perl6 并确实从 @raiph 和 Elizabeth 那里得到了有用的建议,但被建议做另一个问题 con@con-VirtualBox:~$ perldoc -lm Data::Printer/usr/loc ..
发布时间:2021-07-02 19:33:25 其他开发