问题标签 [raku]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
raku - 在 rakudo perl6 中使用语法时遇到问题
最简单的语法用法给我编译错误。
像调用一样src/rakudo/perl6 simple.p6
,它失败了
我尝试了许多具有相似结果的已知工作示例,因此我怀疑我的 perl6 设置不正确。
如果您在 perl6 中使用语法,请告诉我您的设置。提前致谢。
perl - 是否值得学习 Raku(以前称为 Perl 6)?
我有机会使用 Rakudo 编译器参加为期两天的 Perl 6 课程。
我不想发动一场宗教战争,但这值得我花时间吗?是否有理由相信 Perl 6 将在未来两年内在现实世界中实用化?目前有没有人有效地使用它?
更新
我上了这门课,学到了很多东西。然而,在第一天之后,我的大脑有点不知所措。Perl 6 中有很多很酷的想法,很高兴看到哪些内容可以过滤到其他语言。
总的来说,这次体验是对我时间的积极利用,尽管我在第二天无法吸收那么多。如果是三天的课程,那将是徒劳的,因为您可以在短时间内处理多少内容是有限的。
raku - Perl 6 的当前状态是什么?
Perl 6 的当前状态是什么,是否可以投入生产?我们现在站在哪里?有很多程序员对 Perl 6 的当前进展感到好奇。
在 reddit和http://perlmonks.org/?node_id=835419上还有另外两个关于这个的话题。
raku - Rakudo Star (perl6) 的发布日期是什么时候?
如果没有特定的发布日期(我怀疑它不是),您能否提供资源来跟踪它与允许发布的所需功能集的接近程度。
我不一定要一个百分比表,或者 X of Y 功能完成列表。在跟踪 Rakudo 错误的 perl RT 实例的任何部分中标记的错误列表将符合我的标准,如果列表是动态的则更是如此(即,它是以某种方式标记的错误列表,而不是票号的静态列表) . 如果在考虑准备好进行最终测试之前,只剩下几个计划的功能需要完成/测试,那么列出这些也足够了。
raku - 如何知道我正在运行的 perl6/raku 版本?
尝试-v
切换,我得到了鹦鹉 svn 修订版:
但是我怎么知道rakudo 版本,avx.xx
还是{some-git-hash}
?
谢谢,
performance - 随着 Perl 6 实现的成熟,我们可以期待哪些性能提升?
每次我下载 Rakudo Perl 6 的新副本时,我都会运行以下表达式来了解其当前性能:
而且速度一直在增加,但每次计算都有明显的延迟(几秒钟)。作为比较,Perl 5(或其他解释语言)中的类似内容几乎立即返回:
或在 Ruby 中(也几乎是即时的):
将表达式重写为 Perl6loop
最终的速度大约是减小范围的两倍,但对于简单的计算来说仍然是一个非常明显的延迟(超过一秒):
所以我的问题是,Perl6 实现的哪些方面导致了这些性能问题?这是否应该随着时间的推移而改善,或者这种开销是否是 Perl6 正在使用的“一切都是对象”模型的不幸副作用?
最后,loop
构造比[+]
归约运算符更快呢?我认为循环会导致比减少更多的总操作数。
编辑:
如果可以的话,我会同时接受mortiz
' 和hobbs
' 的答案。一切都被作为方法调用处理更直接地回答了为什么[+]
慢,所以人们明白了。
raku - 当我尝试使用 Rakudo 运行脚本时,为什么会出现“除以零”错误?
我刚刚构建了 Rakudo 和 Parrot,以便我可以玩它并开始学习 Perl 6。我下载了 Perl 6 书,并愉快地输入了第一个演示程序(网球锦标赛示例)。
当我尝试运行程序时,出现错误:
perl6
我在构建目录中有我的二进制文件。我在 rakudo 构建目录下添加了一个脚本目录:
如果我尝试从我的脚本目录运行一个简单的 hello world 脚本,我会得到同样的错误:
但是,如果我从它的rakudo
目录运行它。
听起来我需要设置一些环境变量,但我不知道它们是什么以及赋予它们什么值。
有什么想法吗?
更新:
在这一点上我宁愿不安装 rakudo,我宁愿只从构建目录运行东西。这将允许我在尝试不同的 Perl6 构建时尽量减少对系统的更改(Rakudo * 很快就会推出)。
自述文件鼓励我认为这是可能的:
这将在当前(rakudo)目录中创建一个“perl6”或“perl6.exe”可执行文件。然后可以使用以下命令从构建目录运行程序:
重读后,我发现有必要在构建目录之外运行脚本之前安装 rakudo:
一旦构建完成,Rakudo 的
make install
目标会将 Rakudo 及其库安装到用于创建它的 Parrot 安装中。在执行此步骤之前,make
上面创建的“perl6”可执行文件只能从 Rakudo 的构建目录的根目录中可靠地运行。执行后make install
,可以从任何目录运行已安装的可执行文件(只要用于创建它的 Parrot 安装保持不变)。
所以看起来我需要安装 rakudo 才能玩 Perl 6。
下一个问题是,rakudo 安装在哪里?README 说明了用于构建的 Parrot 安装。
我在构建中使用了该--gen-parrot
选项,看起来它安装到rakudo/parrot-install
. 所以 rakudo 将安装到我的rakudo\parrot-install
?
阅读 Makefile,支持这个结论。我跑了make install
,它确实安装到parrot_install
.
对于 Perl6 的新手来说,构建/安装过程的这一部分是不清楚的。我会看看我是否可以提供一个文档补丁来澄清事情。
在我的头顶上:
make install
在运行构建之外的脚本之前强调运行。此要求目前隐藏在段落的中间,并且很容易被浏览文档的人(我)忽略。明确说明 with
--gen-parrot
会将 perl6 安装到parrot_install
目录中。
cpan - 是否有适用于 Perl 6 的类似 CPAN/CPAN6 的项目?
我最近在玩 Rakudo Perl 6,正在寻找一个类似于 CPAN 的项目。我找到了 CPAN 6,但我认为还没有 Perl 6 代码。
因此,我正在寻找一些替代方案,它不一定旨在成为长期解决方案,但能够维护模块并用 Perl 6 编写。
随着 Rakudo 的发展,很快就有可能创建更复杂的 Perl 6 代码。
perl - 如何在 perl6 中从数组或哈希创建方法
我正在尝试向对象动态添加新方法。
以下代码可以正常工作:
这会按预期打印“pong”,而以下内容将无法按预期工作:
将打印 111 或 333。
谁能解释我缺少什么或为什么结果与我的预期不同?
sdl - 如何在 rakudo 中加载 parrot SDL pir 模块?
我不知道如何在 rakudo 中加载 de parrot SDL 模块。我找到了一个使用 pir 代码的示例。
但是...有什么方法可以使用 perl 代码将 pir SDL 模块加载到 rakudo 中?