Программирование на Maple впервые: «Незаконное использование формального параметра» - PullRequest
0 голосов
/ 22 ноября 2011

Я продолжаю получать эту ошибку.Вот код (это для 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;

НоЯ хотел бы знать, в чем проблема, на случай, если мне придется сделать что-то подобное снова.

1 Ответ

1 голос
/ 22 ноября 2011

Ваша первая версия попыталась присвоить формальные параметры процедуры.В этом была проблема.

Предположим, вы вызываете свой исходный Euc и передаете 12 для параметра a и 8 для параметра b.Внутри тела Euc, которое выполняется в этом случае, a оценивается как 12, а a не оценивает имя, которому вы можете назначить назначение.Когда вы попытаетесь присвоить a или b внутри Euc, вы увидите эту ошибку.

...