Автор Тема: Форыч в Оберонах  (Прочитано 18068 раз)

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #30 : Апрель 26, 2012, 05:21:49 pm »
А FOR - один раз.

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #31 : Апрель 26, 2012, 05:24:35 pm »
форич это подмножество фора
Вы что-то путаете... Согласно вашем же определениям, фор - это подмножество форича. То есть, фор - это форич с определённым ограничением.

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #32 : Апрель 26, 2012, 05:27:02 pm »
А FOR - один раз.
В смысле, что язык не накладывает ограничение на реализацию.

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #33 : Апрель 26, 2012, 05:31:03 pm »
А FOR - один раз.
да, но проблема не столько в этом - а в том, что в теле цикла (при обероновской  реализации) -вы можете изменить значение итератора (и таким образом, повлиять на количество итераций)...- то есть он небезопасен.... или так - уровень безопасности такой же как у вайл
« Последнее редактирование: Апрель 26, 2012, 05:33:54 pm от DIzer »

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #34 : Апрель 26, 2012, 05:31:38 pm »
Кстати, однократное вычисления ограничителя в форе - это лишь полезная оптимизация, на которую все полагаются. Её обязательное наличие с концептуальной точки зрения (и по виду выражения) не требуется. Её наличие требует прагматика.

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #35 : Апрель 26, 2012, 05:33:52 pm »
да, но проблема не столько в этом - а в том, что в теле цикла (при обероновской  реализации) -вы можете изменить значение итератора...- то есть он небезопасен.... или так - уровень безопасности такой же как у вайл
Помню, в универе я такое проделывал и в делфи. То есть, думаю, что это патология цикла фор. В любом языке, где он реализован.

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #36 : Апрель 26, 2012, 05:41:12 pm »
да, но проблема не столько в этом - а в том, что в теле цикла (при обероновской  реализации) -вы можете изменить значение итератора...- то есть он небезопасен.... или так - уровень безопасности такой же как у вайл
Помню, в универе я такое проделывал и в делфи. То есть, думаю, что это патология цикла фор. В любом языке, где он реализован.
Есть разные версии Паскаля... в том же Pabce если в попытаетесь что то засандалить в итератор в теле цикла ... то   будет сгенерировано исключение времени компиляции - декларированное языком ИМХО Правильный выбор

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #37 : Апрель 26, 2012, 05:43:11 pm »
ИМХО Правильный выбор
Не спорю.

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #38 : Апрель 26, 2012, 05:54:14 pm »
форич это подмножество фора
Вы что-то путаете... Согласно вашем же определениям, фор - это подмножество форича. То есть, фор - это форич с определённым ограничением.
Да вы правы... если строго определять... но есть позиция практикующего...когда есть алгоритм (решение задачи)... и есть проблема выбора адекватной конструкции это на "примитивном" уровне, на более крутом... обычно встает вопрос так -есть идея алгоритма- в какую оптимальную форму ее облечь  - тут параметры "оптимизации" могут  ИМХО  приводить к нестандартным взглядам(семантика родственна задаче и вашему взгляду на нее-то есть любая исследовательская (научная) задаче может породить(а может и нет) нестандартное толкование).... но скажу честно... серьезно этой тематикой я не занимался. так что... считаем что вы  правы  :) :D

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #39 : Апрель 26, 2012, 06:03:05 pm »
ИМХО Правильный выбор
Не спорю.
:) Вы выделили не то что определяет - определяющим было декларирование этой особенности на уровне ЯП. Тут возникает известная проблема, с какой точностью должен быть описан ЯВУ... помнится  тут на эту тему развлекался Алексей  :D ;)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #40 : Апрель 26, 2012, 06:08:21 pm »
Алексей ну не путайте ТУПУЮ РЕАЛИЗАЦИЮ с ПРИНЦИПИАЛЬНОЙ НЕОПРЕДЕЛЕННОСТЬЮ  :(

Принципиальная неопределенность foreach чаще всего не нужна. Даже наоборот, чаще всего нужен определенный (тупой) порядок.

"Чаще всего" - относится, конечно, непосредственно к кодированию алгоритма на обычном ЯП для обычных компов. Для каких-нибудь математических рассуждений "чаще всего" может быть совсем даже другим.

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #41 : Апрель 26, 2012, 06:14:17 pm »
И я про это  ;D - вот фор и задает эту определенность в явном виде

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Форыч в Оберонах
« Ответ #42 : Апрель 26, 2012, 06:22:55 pm »
И я про это  ;D - вот фор и задает эту определенность в явном виде

Эту определенность можно и так декларировать для foreach в конкретном ЯП. Что и делают. Если у вас для foreach подобная декларация кажется неправильной (противоречащей истинной природе "настоящего" foreach) - это ваши проблемы, не используйте такой неправильный ЯП :)

Что касается for'а, то у него полно недостатков даже по сравнению с таким "неправильным" foreach. Поэтому не надо отправлять использовать for там где хоршо работает "непрвильный" foreach :)
« Последнее редактирование: Апрель 26, 2012, 06:26:05 pm от vlad »

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #43 : Апрель 26, 2012, 06:29:12 pm »
ну есть например такая  распространенная форма foreach i in [1..10] do.... то есть значение  i пробегает все элементы из множества... в каком месте здесь есть намек на порядок?

DIzer

  • Гость
Re: Форыч в Оберонах
« Ответ #44 : Апрель 26, 2012, 06:32:42 pm »
или вы поступаете  как предлагал Алексей - реализуете форич интерфейс для  бинарного дерева... в каком месте там будет указан порядок обхода?