首次在 Maple 中编程:"Illegal use of formal parameter"



我一直得到这个错误。下面是代码(用于GCD):

Euc := proc (a, b) 
if b = 0 then a;
else c := b; 
d := a mod b;
b := d; a := c;
end if;
end proc;

我从不使用Maple,因为它让我头疼,文档是一场噩梦,但这个作业必须在Maple中完成…如果我在简单的GCD上遇到困难,我不会在周三之前写RSA和El Gamal:s

edit:使用

修复
Euc := proc (a, b) 
if b = 0 then a;
else c := b; 
d := a mod b;
Euc(c,d);
end if;
end proc;

但无论如何,我还是想知道问题是什么,以防我不得不再次做类似的事情。

您的第一个版本试图赋值给程序的形式参数。这就是问题所在

假设您调用原始的Euc,并为参数a传递12,为参数b传递8。在Euc的主体中,当它在这个实例中运行时,a的计算结果是12,而a的计算结果不是一个您可以对其进行赋值的名称。当你尝试在Euc中对ab进行赋值时,你会看到这个错误。

最新更新