Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:16

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 20:08 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
интересно, DO LOOP в ядро вернулся? (или я что-то пропустил)

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 20:19 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вопрос писал(а):
интересно, DO LOOP в ядро вернулся? (или я что-то пропустил)

а зачем оно там?
имхо, самый неудачный из циклов в форте.
Если уж и вносить в ядро, то цикл на основе :
NOW SINCE FOR TILL NEXT набора см. в add/ for-next.fts

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 20:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
имхо, самый неудачный из циклов в форте.

Цикл со счетчиком неудачен??? Упс, а я его аппаратно делаю...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 20:26 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
mOleg писал(а):имхо, самый неудачный из циклов в форте.
Цикл со счетчиком неудачен??? Упс, а я его аппаратно делаю...

вот аппаратно и делай! Я же не про аппаратно говорю.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 20:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
вот аппаратно и делай! Я же не про аппаратно говорю.

Не аппаратно это первое, что появляется. Остальные-то вообще редко, а вот DO LOOP - частый зверь.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 20:41 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
Не аппаратно это первое, что появляется. Остальные-то вообще редко, а вот DO LOOP - частый зверь.

наиболее простой и удобный вариант - это BRANCH и ?BRANCH на основе которых реализуются все циклы (в том числе и DO LOOP)
но в таком случае DO LOOP получается тяжолый и неторопливый.
К неудобностям DO LOOP я отношу:
1) невозможность использовать стек возвратов внутри цикла
2) всякие LEAVE и UNLOOP, без которых можно в принципе обходиться, да не обходятся
3) довольно сложное приращение счетчика и проверка выхода из цикла.
И самое главное, легко заменяются DO LOOP на BEGIN WHILE REPEAT, причем, есть еще более удобный вариант:
BEGIN WHILE WHILE REPEAT THEN и не только он.
Поэтому вполне нормально, что DO LOOP находится во внешней либе, которую можно при желании подключить к ядру.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 21:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
1) невозможность использовать стек возвратов внутри цикла

Control-flow стек. Зачем все держать на стеке возвратов?
mOleg писал(а):
2) всякие LEAVE и UNLOOP, без которых можно в принципе обходиться, да не обходятся

DO LOOP постоянно, LEAVE и UNLOOP практически никогда.
mOleg писал(а):
3) довольно сложное приращение счетчика и проверка выхода из цикла.
И самое главное, легко заменяются DO LOOP на BEGIN WHILE REPEAT, причем, есть еще более удобный вариант:

При этой замене необходимость поддерживать счетчик перекладывается на программиста.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 29, 2008 21:27 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
При этой замене необходимость поддерживать счетчик перекладывается на программиста.

Да, можно даже что-то стандартное изобрести, чтобы
BEGIN

WHILE

REPEAT
ещё и счётчик поддерживало и выход, если условия не соблюдены, но выглядит это всё сложнее внешне, чем DO LOOP LEAVE и т.п.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт дек 30, 2008 19:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
(выделил в отдельную тему, так как оно вроде как не особо относится к новой сборке).
А вот интересно, какие еще циклы уже есть в форте?
ну, есть классические:

BEGIN WHILE REPEAT
BEGIN AGAIN
BEGIN UNTIL
и их комбинации

Есть:
DO I J LEAVE UNLOOP LOOP +LOOP

Есть более новый:
FOR NEXT
на основе которого у меня появился
FOR TILL
NOW SINCE NEXT
NOW SINCE TILL

Есть рекурсивные циклы в бэктрекинге, но бэктрекинг особой популярностью не пользуется.

А что еще есть-то?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 31, 2008 03:28 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
RECURSE ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 31, 2008 11:19 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Вообще - у Олега интересно - цикла DO LOOP в ядре нет, но вот конструкции на русском языке в rus.fts его предусматривают...

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 31, 2008 19:20 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вопрос писал(а):
Вообще - у Олега интересно - цикла DO LOOP в ядре нет, но вот конструкции на русском языке в rus.fts его предусматривают...

.\lib\util\doloop.fts смотрели ? ;)
циклы do loop поддерживаются, и находятся во внешней либе, а не в ядре (и всего-то).

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 02, 2009 01:58 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
mOleg писал(а):
Есть более новый:
FOR NEXT
на основе которого у меня появился
FOR TILL
NOW SINCE NEXT
NOW SINCE TILL

Ктати, не помешало бы и описание этих циклов 8)

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 02, 2009 11:48 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
вопрос писал(а):
Там имеется статейка.

"Там" - понятие растяжимое.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 03, 2009 21:06 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Там имеется статейка.

"Там" - понятие растяжимое.
да, я тоже не вспомнил, где статейка. МОжет, автор подскажет

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB