2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Аналог операции GoTo в Maple.
Сообщение28.04.2014, 00:22 
Здравствуйте,

Помогите пожалуйста. Меня интересует, есть ли в Maple операция выполняющая туже функцию что и операция GoTo в Паскале или С++.

 
 
 
 Re: Аналог операции GoTo в Maple.
Сообщение28.04.2014, 11:15 
В C++ пользоваться goto (в отличие от C) нельзя категорически бывает затруднительно из-за особенностей взаимодействия goto с конструкторами и деструкторами.
И ничего, обходятся без goto. Думаю, и в Maple можно и нужно без него обойтись.

 
 
 
 Re: Аналог операции GoTo в Maple.
Сообщение28.04.2014, 12:35 
Есть, например в Maple 10 и Maple 12, недокументированная функция goto(<label>).
Код:
> minimum:= proc(x, y)
    if x < y then goto(L1) else goto(L2); end;
    L1: return(x);
    L2: return(y);
   end proc:
> minimum(3, 2);
          2
Аладьев пишет, что метки являются глобальными идентификаторами. Это может приводить к проблемам. Банальный пример, использующий описанную выше функцию
Код:
# Выше по тексту программы определена minimum
> L1:= 10:
> minimum(2, 3);
   Error, (in minimum) goto to an undefined or unreachable label


Использование unassign('L1', 'L2') в начале процедуры, очевидно, приводит к проблеме потери значения переменной, если она была определена в вызывающей программе. Попробуйте посмотреть библиотеку Аладьева (старая ссылка, не проверял). Возможно, в ней найдёте для себя что-то интересное. Нароете — пишите в теме.

Мне трудно представить случай, когда использование goto в Maple было бы полезно. В Maple есть достаточно навороченные циклы и выражения break и next (для выхода из цикла и перехода к следующей итерации), а также достаточно навороченный if. Как правило, необходимость в goto пропадает после незначительного изменения алгоритма. При этом увеличивается читаемость и модифицируемость кода. В общем, я бы не стал использовать недокументированные возможности без особой необходимости.

Будем надеяться, знатоки Maple дополнят или поправят меня.

 
 
 
 Re: Аналог операции GoTo в Maple.
Сообщение28.04.2014, 13:42 

(Оффтоп)

Пару лет активно пользовался меплом (в основном мелкие программки для решений разной чепухи) - как то без goto обошелся. Хотя в бейсике и фортране с удовольствием пользовался этим оператором.
Не нужен в мепле goto, совсем.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group