Существует такое понятие, как "концевая рекурсия":
Код
procedure Proc();
begin
...// некий код
Proc();
end;
Вот задался вопросом - существует ли компилер с подобной фишкой для Паскаля?
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
| hardcase |
Сообщение
#1
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Недавно увлекся функциональным программированием, конкретный язык - Nemerle. Язык интересен тем, что все синтаксические конструкции (в терминах Nemerle - макросы) выражены через рекурсию и сопоставление с образцом.
Существует такое понятие, как "концевая рекурсия": Код procedure Proc(); begin ...// некий код Proc(); end; Вот задался вопросом - существует ли компилер с подобной фишкой для Паскаля? -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
![]() ![]() |
| SKVOZNJAK |
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Да хоть борланд, хоть ФПЦ, ввезде это работает, если GOTO использовать. В турбовизион таким способом удобно окошки создавать: при нажатии на кнопку в обработчике событий срабатывает GOTO, параметр записывается в массив откуда потом считывается процедурой создающей окно, выполняется какое-либо действие, окно перезапускается с новыми параметрами. Так можно текст в окошко вводить, что-то запускать. Фишка в отсутствии необходимости изучать всю систему целиком, она и по частям работает хорошо, и даже совмещается с другими системами. Без GOTO это невозможно - надо весь код изучать, переделывать...
Можешь посмотреть как это работает http://stiratel7.narod.ru/1/z.html Система "Сушняк турбо", надеюсь архив не запортился на сайте, как это случилось с гамой. Сообщение отредактировано: SKVOZNJAK - |
| hardcase |
Сообщение
#3
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Да хоть борланд, хоть ФПЦ, ввезде это работает, если GOTO использовать Использование конструкции GoTo в данном случае не уместно, ибо она небезопасна и по своей логике нарушает концепцию "вызова-возврата", кроме того приходится самостоятельно забивать параметры руками, а это черевато побочными эффектами, проблемами с дальнейшим сопровождением кода, рефакторингом и прочими прелестями.-------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
hardcase Оптимизация концевой рекурсии 17.05.2007 3:15
Lapp Забавно, действительно в этом случае локальные пар… 17.05.2007 5:35
SKVOZNJAK Безопасность зависит от конкретного компилятора, н… 18.05.2007 23:54
hardcase Ночью перечитал пост... Убила фраза.
В описанном я… 19.05.2007 6:05
SKVOZNJAK
Ночью перечитал пост... Убила фраза.
Трудно удерж… 20.05.2007 15:59
hardcase Для меня идеальный код, это такой код в котором к… 20.05.2007 18:29![]() ![]() |
|
Текстовая версия | 26.12.2025 7:51 |