|
|
1
7
我想是的,差不多吧。但我要把你的问题翻译成三个不同的问题来提供一个更有用的答案。 以下前两个问题的答案请参考 a reddit comment I wrote about this 。我的评论分为四部分,用横线分隔。第一部分和最后一部分与你的问题有关。 是否可以修改Perl6语言?对。 您可以或多或少地从userland代码中任意修改perl 6语言。 引用我上面链接的评论的第一部分的要点:
引用我写的最后一部分: 虽然俚语可以实现…他们没有得到官方的支持…而且不像他们需要的那么甜。 是否可以编写与编译器通信的编译时宏?对。 不幸的是,您还不能定义语句宏,这是您需要的新类型的变量声明。引用我上面链接的评论中的最后一节:
“如果您希望内部DSL,但它在语法上与标准Perl6冲突,无法仅使用用户定义的例程和运算符,那么您需要的设计选项是……写一个
Perl6中有没有可能有新的想法?对。 只需实现你的想法并游说它的包含。可能从俚语开始。可能只是直接攻击整个编译器。 我对最后一点很认真。 Rakudo Perl6编译器当然是开源的。 更重要的是,大部分 written in Perl 6 。(而不是Perl6的大部分内容是nqp,它基本上是完整Perl6的一个子集。) 结论
如果你能写一些基本的Perl6代码;愿意
ask loads of questions on the freenode IRC channel #perl6-dev
;并且是有耐心的;那么您应该能够在Perl6和您的
(在“相对”的情况下,我想象一个知识渊博的核心开发人员可以在几个小时内完成概念验证,前提是我正确理解了他们面临的问题。有一天,当俚语和/或宏更为精练时,可能需要一个小时左右。) |
|
|
2
5
你要找的可能就是我们所说的 allomorphs 在Perl6中,根据上下文的不同,类型的行为会有所不同。对于您发布的特定案例,有 IntStr allomorph :
(请注意,它需要
quote-words <>
而不是平常
另一个选择是,如果你已经知道你将得到什么和它将变成什么,那就是 use coercion :
在这种情况下,字符串将被强制为
最后,你可以使用 the number contextualizer ,只要在有效使用变量时使用。
(它使用上面定义的变量)在这里,无论变量是否没有指定类型(如
完整程序是 here ,以防您要下载并检查它。 |
|
|
3
5
我只是想提一下 Proxies 。这些工作在容器级别,并且只在运行时进行。但是给一些能力来控制或跟踪变量的变化。
代理可以用来实现类似
|
|
|
jjmerelo · 使用Proc::Async从绑定管道读取 8 年前 |
|
|
Eugene Barsky · Perl 6中多针的索引 8 年前 |
|
|
Håkon Hægland · 如何通过扩展模块所使用的类来扩展模块? 8 年前 |
|
|
chenyf · Perl 6中后缀或后循环前的点是什么意思? 8 年前 |
|
|
jjmerelo · m和rx之间有什么区别吗? 8 年前 |