2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Аналог операции GoTo в Maple.
Сообщение28.04.2014, 00:22 


18/12/13
12
Здравствуйте,

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

 Профиль  
                  
 
 Re: Аналог операции GoTo в Maple.
Сообщение28.04.2014, 11:15 
Заслуженный участник


02/08/11
7013
В C++ пользоваться goto (в отличие от C) нельзя категорически бывает затруднительно из-за особенностей взаимодействия goto с конструкторами и деструкторами.
И ничего, обходятся без goto. Думаю, и в Maple можно и нужно без него обойтись.

 Профиль  
                  
 
 Re: Аналог операции GoTo в Maple.
Сообщение28.04.2014, 12:35 
Заслуженный участник


12/07/07
4530
Есть, например в 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 


19/05/10

3940
Россия

(Оффтоп)

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group