raku相关内容

Perl6 REPL 使用

在将您放入 REPL 之前,是否可以让 (Rakudo) Perl6 执行一些代码?就像 python 对 "python -i " 所做的一样. 例如,我想加载一些模块,并且可能读取一个侧文件并从该侧文件构建一些数据结构,然后再放入 REPL 并让用户在数据结构上做他们需要做的事情,使用REPL 作为用户界面. 这与使用从文件加载的定义启动 REPL 类似但不同,尽管此问题的答案可能 ..
发布时间:2021-07-02 19:35:17 其他开发

检查列表是否为空 (Raku)

FAQ:在 Raku 中如何检查列表是否为空?是否有比以下更惯用的方式: 我的@l = ();说@l.elems == 0;说@l == ();说@l.Bool; 列表中的文档 推荐 智能匹配 说 $l ~~ (); 你知道其他方法吗? 你能解释为什么 () === () 是错误的,即使 "" === "" 是正确的:我不清楚. 解决方案 建议的: 说@l.elems == 0 ..
发布时间:2021-07-02 19:35:14 其他开发

从“执行"位置的类中的 AT-POS 方法(而不是代理实例)返回“原始"标量容器?

我正在尝试实现一个“执行"Positional 的类,该类还允许我通过分配给 AT-POS 方法返回的结果来更新其值.最终,我能够编造以下按预期工作的类: class Test 做 Positional{有 $.slot_1 是 rw = 12;有 $.slot_2 是 rw = 24;方法 AT-POS(\position){我的 $t = 自己;返回-rw Proxy.new:取回=>方法 ..
发布时间:2021-07-02 19:35:11 其他开发

无法在接收器上下文中放置地图

我想看看在接收器上下文中抛出地图的方式.在这段代码中 class 沉没 {有 $.titanic;方法接收{说“下沉$!泰坦尼克号";}}Sunk.new( :titanic($_) ) 为 1..3;(1..3).map: { Sunk.new( :titanic($_) ) }; for 循环有效地接收所有创建的内容,map 没有.知道为什么吗? 此烤肉测试:https:/githu ..
发布时间:2021-07-02 19:35:08 其他开发

perl6 “P6opaque, Str"vs 简单的“Str"类型

我试图从用户输入中获取一个列表,执行我常用的代码,但有时会由于此错误而意外失败: 此类型无法拆箱为原生整数:P6opaque, Str 代码行是 my @a = prompt("输入列表:").words ||(1,2,3); 只有当我只输入一个数字时才会失败. 何时将 Str 转换为“P6opaque, Str"?没有用户意识?我不能使用 +@a[0] 或 @a[0].Int 来转 ..
发布时间:2021-07-02 19:35:05 其他开发

如何在perl6中找到与regexp匹配的数量?

在 Perl 5 中我们可以编写 my @things = $text =~/thing/g; 和 $things 在标量上下文中是字符串 $text 中子字符串 thing 的非重叠出现次数. 如何在 Perl 6 中执行此操作? 解决方案 你可以这样做: my $text = 'thingthingthing'我的@things = $text ~~ m:g/thing/; ..
发布时间:2021-07-02 19:35:02 其他开发

在 Perl 6 中创建一个 Maybe 类型

我有很多可能会失败的函数,但它们的签名中也定义了返回类型.因为我喜欢尽可能定义变量的类型,所以我想定义一个 Maybe 子集来使用它.我想出了这个: subset 也许是 Mu 的出口,其中 Mu |失败; 问题在于 Failure 是 Mu 的子类,所以这将匹配任何东西,当我真正想要的是能够匹配一个特定的与 Failure 一起动态输入.我的下一个想法是创建一个参数化角色以用作类型,因为我不 ..
发布时间:2021-07-02 19:34:59 其他开发

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

请考虑下面的代码.为什么这个输出是“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 其他开发

如何在Perl6中逐行读取gz文件

我正在尝试在 Perl6 中逐行读取一个巨大的 gz 文件. 我正在尝试做这样的事情 my $file = 'huge_file.gz';对于 $file.IO.lines ->$行{说 $line;} 但这会导致我的 UTF-8 格式错误.我看不到如何从帮助页面读取 gzipped 材料 https://docs.perl6.org/language/unicode#UTF8-C8 或 ..
发布时间:2021-07-02 19:34:53 其他开发

Perl 6 的 shell() 使用哪个 shell?

Perl 6 的 shell 向“shell"发送命令但没有说明那是什么.我一直在我的机器上使用 bash,但我不知道我是否可以依赖它. $ perl6 -e 'shell( Q/echo $SHELL/)'/bin/bash$ csh% perl6 -e 'shell( Q/echo $SHELL/)'/bin/bash% zsh$ perl6 -e 'shell( Q/echo $SHELL ..
发布时间:2021-07-02 19:34:50 其他开发

Perl6 相当于 Perl 的“存储"或“使用可存储"

我正在尝试将写入速度非常慢的哈希写入数据文件,但我不确定 Perl6 与 Perl5 相比如何做到这一点.这是一个类似的问题 将中间数据存储在 Perl 6 中的文件中 但我不知道如何使用那里写的任何东西,特别是消息包. 我希望看到与 Perl6 等效的 my %hash = ( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);使用可存储;存储 \%hash ..
发布时间:2021-07-02 19:34:47 其他开发

EXPORTHOW::DECLARE 和类似角色的声明

我需要一个角色,通过从Metamodel::ParametricRoleHOW 继承的Metamodel 类实现一些特殊功能.应用它的一种方法是使用特征.但我想要一个很好的语法糖,就像我们可以用类做的那样: 特殊矿井{...} 好的,我将以下内容添加到我的模块中: 我的包 EXPORTHOW {包声明{常量特殊 = My::Metamodel::SpecialRoleHOW;}} 一切都运 ..
发布时间:2021-07-02 19:34:44 其他开发

在 Perl 6 中的文件中存储中间数据

我的一些程序由两部分组成.首先,他们从文件中读取大数据并对其进行转换,生成Arrays、Hashes、Objects 等;其次,他们使用(总是不同的)用户定义的条件来分析这些数据.第一部分保持不变(只要源数据没有改变),但有时每次运行程序都需要相当长的时间,而且我通常必须使用相同的源数据多次运行它.拥有两个程序会好得多——其中一个(一次)读取数据并对其进行转换,而另一个对其进行分析(多次). ..
发布时间:2021-07-02 19:34:41 其他开发

是何时反应块顺序中的信号()依赖?

我有一个小程序,它会一直运行到收到 SIGINT 或收到来自 stdin 的两行(按 Enter 两次).反应块逻辑是: 反应{每当信号(SIGINT){说“有信号";出口;}每当 $*IN.lines.Supply {说“有线";如果 $++ == 1 则退出;}} 程序将按预期在输入的两行退出. 然而 CTRL-C 不会做任何事情,除非它后面跟着一行(回车). 如果我切换whe ..
发布时间:2021-07-02 19:34:38 其他开发

本机 localtime() 段错误

在尝试公开 Perl 6 中的 localtime 功能时,我似乎做错了: 使用 NativeCall;我的类 TimeStruct 是 repr{有 int32 $!tm_sec;有 int32 $!tm_min;有 int32 $!tm_hour;有 int32 $!tm_mday;有 int32 $!tm_mon;有 int32 $!tm_year;有 int32 $!t ..
发布时间:2021-07-02 19:34:35 其他开发

.Bool, .so, 之间的区别?所以

我想弄清楚上述例程和 if 语句之间的区别是什么 说 $y.Bool;说 $y.so;说 ?$y;这么说 $y; 会产生不同的结果. 到目前为止,对我来说唯一明显的区别是 ? 比 so 具有更高的优先级..Bool 和 .so 似乎完全是同义词.这是正确的吗?(实际上)是完整的故事吗? 解决方案 为了回答你的问题,我所做的是解析 Rakudo 编译器源代码. 正如您所注意到 ..
发布时间:2021-07-02 19:34:32 其他开发

在 Perl 6 中过滤匹配两个正则表达式的元素

这里发生了一些我不太明白的事情. >我的@arr = >@arr.grep: (( * ~~/a/) && ( * ~~/b/))(bc abc) 但是 >@arr.grep(* ~~/a/).grep(* ~~/b/)(ABC) 什么原因? 解决方案 您想出了完美的解决方案. 另一个是: my @arr = @arr.grep: { $_ ~~/a/ ..
发布时间:2021-07-02 19:34:29 其他开发

分配给列表容器混淆

我可能患有大脑衰退,但根据有关项目和列表分配的文档(https://docs.raku.org/language/variables#Item_and_list_assignment ), 分配给列表容器(列表上下文)总是触发列表分配. 然而,这似乎与我从代码中得到的内容相冲突(此处在 raku repl 中复制).. >my %syns-by-name = %(Bq => [“Bq ..
发布时间:2021-07-02 19:34:26 其他开发

Perl 6 的 DEFINITE 和定义的方法有什么区别?

类型对象总是未定义的,但我见过一些使用 .defined 的测试和一些使用 .DEFINITE 的测试.有没有可能不同的情况?我倾向于认为任何全大写的方法都不适合日常工作,并且更喜欢 .defined 来完成这项任务. my $class = IntStr;把'-' x 20;# 错误的把 $class.DEFINITE;把 $class.defined;把'-' x 20;# 错误的$clas ..
发布时间:2021-07-02 19:34:23 其他开发