http://www.exponenta.ru/soft/Maple/manson/poweredition/chapter8/8_1_2.asp
Для того чтобы создать процедуру (подпрограмму), которую вы могли бы использовать неоднократно, в программе Maple используется конструкция proc/end . Процедура записывается следующим образом
>
> Имя:=proc(параметр1::type1,параметр2::type2,...) local l1,l2...; global g1,g2...; options op1, op2, ...; тело процедуры; end;
control character unexpected
Она начинается с имени, которому присваивается ключевое слово proc (сокращенное от procedure) за которым в скобках перечисляются формальные параметры процедуры с необязательным указанием их типа - через дважды записанное двоеточие). Далее может идти необязательное перечисление локальных и глобальных переменных, используемых в теле процедуры, заканчиваемое знаком ; .Вслед за этим, если необходимо, идет перечисление опции процедуры, заканчиваемое знаком ;. Далее идет тело процедуры - алгоритм выполнения процедуры. Процедура обязательно заканчивается словом end и следующим за ним знаком конца команды (двоеточие или точка с запятой). Результатом выполнения процедуры, является результат последней выполненной операции, если не применены одна из команд возврата RETURN или ERROR (смотрите ниже).
В следующем примере очень простая процедура plotdiff строит кривые функции и ее производной на одном графике.(рис. 68).
> restart;plotdiff:=proc(y,x,a,b) local yp;
yp:=diff(y,x);
plot([y,yp],x=a..b);
end;
> plotdiff(x^3-2*x+1,x,-1,1);