相关疑难解决方法(0)

宏定义中的"位置太少"

我试图用这种方式创建一些使用(实验)宏的例子:

use experimental :macros;
macro cards_vars() { 
  (<hearts clubs diamonds spades> X~ 1..10).map: { "my \$$^x = False;" }  
};
cards_vars(); 
say $hearts1;
Run Code Online (Sandbox Code Playgroud)

这将创建并运行宏,然后检查是否存在已定义的变量之一.但我得到这个错误:

Too few positionals passed; expected 3 arguments but got 2
Run Code Online (Sandbox Code Playgroud)

我甚至不知道那个错误来自哪里.我认为它在cards_vars()中,但我不知道是否是这种情况.声明没有括号的宏会产生相同的错误.

macros perl6

7
推荐指数
2
解决办法
92
查看次数

perl6:为什么数组在声明中跳过计算值?

我正在从Perl5学习Perl6.

为了进行编译,我将发布整个程序:

sub lgamma ( Num(Real) \n --> Num ){
  use NativeCall;
  sub lgamma (num64 --> num64) is native {}
  lgamma( n )
}

sub pvalue (@a, @b) {
  if @a.elems <= 1 {
    return 1.0;
  }
  if @b.elems <= 1 {
    return 1.0;
  }
  my Rat $mean1 = @a.sum / @a.elems;
  my Rat $mean2 = @b.sum / @b.elems;
  if $mean1 == $mean2 {
    return 1.0;
  }
  my Rat $variance1 = 0.0;
  my Rat $variance2 = 0.0;

  for @a -> …
Run Code Online (Sandbox Code Playgroud)

perl6

7
推荐指数
3
解决办法
172
查看次数

标签 统计

perl6 ×2

macros ×1