Форум: "Прочее";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизИтераторы в Delphi Найти похожие ветки
← →
Cyrax © (2006-10-06 00:32) [0]Как их реализовать?
← →
Ketmar © (2006-10-06 00:34) [1]аккуратно.
← →
Cyrax © (2006-10-06 00:37) [2]Ещё как...
← →
Ketmar © (2006-10-06 00:49) [3]ты это... задачу давай. или тебе универсальные надо? тогда тут без нормальных сопроцессов не обойдёшься.
(больная идея: fibers? не пинать -- сам знаю, что больной на голову %-)
← →
Cyrax © (2006-10-06 01:03) [4]А ещё лучше ссылочку, где можно скачать компонент для работы с итераторами... :)/
1. Есть data типа Pointer. Надо пробежаться по n первым элементам типа, например, integer, лежащим по этому указателю.
Желательно без создания дополнительного указателя типа Integer... (*)
Желательно всё в цикле for (а вот это шутка)...
2. Надо получить i-й элемент какого-либо типа по указателю data типа Pointer, используя как можно меньше символов... Желательно 2-3...
(*) в силе.
← →
Ketmar © (2006-10-06 01:20) [5]вряд ли так просто всё получится...
← →
Celades (2006-10-06 01:23) [6]А имеют ли они вообще в Delphi смысл, при отсутсвии в нем парадигмы обобщенного программирования на должном уровне?
← →
vuk © (2006-10-06 01:54) [7]А чего здесь сложного-то? Приводим data к типу "указатель на массив элементов нужного типа" и по индексу берем значение. В общем виде i-й элемент массива любо типа получается добавлением к адресу начала массива i, умноженного на размер элемента.
Правда, это я итераторами не называл бы... :)
← →
Джо © (2006-10-06 03:46) [8]> [4] Cyrax © (06.10.06 01:03)
> 1. Есть data типа Pointer.
Выбросить :)
Переводи в классы и списки классов. Кстати, в BDS2006 можно реализовать (синтаксически) итератор для употребления в новой конструкцииfor ... in
.
← →
MBo © (2006-10-06 06:19) [9]можно посмотреть библиотеки DeCal/SDL
Однако для задач в [4] итераторы не нужны.
← →
vidiv © (2006-10-06 09:52) [10]Что такое итераторы?
← →
Cyrax © (2006-10-06 12:06) [11]vuk © (06.10.06 01:54) [7]
Правда, это я итераторами не называл бы... :)
Сойдёт и так...
Джо © (06.10.06 03:46) [8]
Переводи в классы и списки классов.
В данном случае это крайне неэффективно...
vidiv © (06.10.06 09:52) [10]
Что такое итераторы?
Ето абстракция...
...для управления контейнерами, не зная типов, идентифицирующих элементы...
← →
vuk © (2006-10-06 12:24) [12]to Cyrax © (06.10.06 12:06) [11]:
>для управления контейнерами
Нет. Для перебора элементов.
← →
Cyrax © (2006-10-06 23:14) [13]vuk © (06.10.06 12:24) [12]
> to Cyrax © (06.10.06 12:06) [11]:
>>для управления контейнерами
>Нет. Для перебора элементов.
Нет, всё-таки для управления, поскольку перебор - это всего лишь частный случай использования итераторов...
← →
default © (2006-10-07 00:07) [14]посмотри как сделаны итераторы в .NET, например, в класс Stack, ArrayList, Quene,...
итераторы там просто перебор элементов
← →
default © (2006-10-07 00:11) [15]итератора дословно - перечислитель, ни о каком УПРАВЛЕНИИ речи не идёт
← →
default © (2006-10-07 01:22) [16]Удалено модератором
Примечание: Личная переписка. Чат/почта/аська
← →
Джо © (2006-10-07 02:27) [17]> [13] Cyrax © (06.10.06 23:14)
> vuk © (06.10.06 12:24) [12]
> > to Cyrax © (06.10.06 12:06) [11]:
> >>для управления контейнерами
> >Нет. Для перебора элементов.
>
> Нет, всё-таки для управления, поскольку перебор - это всего
> лишь частный случай использования итераторов...
Как раз наоборот, вроде. :) Перебор, собственно, и есть главная функция итераторов. А "управляем" мы и ими или нет — дело десятое...
← →
vuk © (2006-10-07 11:45) [18]to Cyrax:
Возьмите книжку какую-нибудь, ну хотя бы Буча и посмотрите, как там итераторы описаны.
Кстати, у Буча выделены два типа итераторов - активные и пассивные. Активные - это то, что используется чаще всего(с набором методов/свойств в духе IsDone-Next-Reset-Current). Пассивные - это когда клиент сам перебором не упарвляет, а только передает итератору функцию, которую он вызывает для каждого элемента контейнера. Если кто помнит, то именно так были устроены методы-итераторы в коллекциях TurboVision/OWL.
← →
Cyrax © (2006-10-09 22:34) [19]Удалено модератором
Примечание: Личная переписка. Чат/почта/аська
← →
Kolan © (2006-10-09 22:35) [20]
> Cyrax © (06.10.06 00:32)
До итератора я еще не дочитал, но там же есть UML диаграммы на все паттерны.
← →
Юрий Зотов © (2006-10-09 23:11) [21]Аффигеть...
Простейший цикл... простейший проход по массиву/списку/коллекции объектов... а как много "хвилософфии"...
Аффигеть....
PS
После знакомства с Джавой не могу отделаться от ощущения, что мир катится к ламеризму.
Не стану утверждать, что это ощущение безусловно верно, но все же плдтверждения тому есть.
Это еще одно?
← →
Kolan © (2006-10-09 23:12) [22]
> После знакомства с Джавой
Шас придет iZEN :)
← →
Cyrax © (2006-10-09 23:20) [23]Юрий Зотов © (09.10.06 23:11) [21]
Аффигеть...
Простейший цикл... простейший проход по массиву/списку/коллекции объектов... а как много "хвилософфии"...
Аффигеть...
После знакомства с Джавой не могу отделаться от ощущения, что мир катится к ламеризму.
Я просто тащщусь от такого запала... (в хорошем смысле, конечно)
Kolan © (09.10.06 23:12) [22]
> После знакомства с Джавой
Шас придет iZEN :)
Давай его сюда. Щас споём... (ну, :))
← →
Джо © (2006-10-09 23:20) [24]> [21] Юрий Зотов © (09.10.06 23:11)
> Аффигеть...
>
> Простейший цикл... простейший проход по массиву/списку/коллекции
> объектов... а как много "хвилософфии"...
Ну почему хвилософии? Один из видов итераторов: передача параметра процедурного типа, который будет вызываться для каждого элемента коллекции, иногда ведь удобно.
← →
jack128 © (2006-10-09 23:26) [25]Юрий Зотов © (09.10.06 23:11) [21]
с другой сторому принцип "Keep It Simple, Stupid" никто не отменял. А людей, которые понимают его - не так и много. Вот и приходится принудительно заставлять народ следовать ему...
← →
Ketmar © (2006-10-09 23:30) [26]>[25] jack128(c) 9-Oct-2006, 23:26
>принцип "Keep It Simple, Stupid"
хорош, когда
а) его не навязывают;
б) оно-таки simple.
%-)
← →
jack128 © (2006-10-09 23:42) [27]jack128 © (09.10.06 23:26) [25]
с другой стороНЫ естественно
Ketmar © (09.10.06 23:30) [26]
а) его не навязывают;
не знаю... Может быть, а может и нет. Например, стиль форматирования я себе навязывал. Точему тут этот фокус не пройдет ?
Ketmar © (09.10.06 23:30) [26]
б) оно-таки simple.
ну ты еще скажи, что джава (как язык) - сложна ;-)
← →
Джо © (2006-10-09 23:43) [28]> [27] jack128 © (09.10.06 23:42)
> Ketmar © (09.10.06 23:30) [26]
> б) оно-таки simple.
> ну ты еще скажи, что джава (как язык) - сложна ;-)
Как язык несложна. Но такая муть :)
← →
Zeqfreed © (2006-10-09 23:57) [29]> [28] Джо © (09.10.06 23:43)
Тсс! Сейчас iZEN прийдет! :)
← →
isasa © (2006-10-10 00:02) [30]Долго крепился, но влезу.
Это от того, что при варианте
type *var; // type var[];
type **var; // type var[][];
с последующей
var = (type*)calloc(nSize, typeof(type));
...
Ну очень надо помнить nSize в дальнейшем. Что дико раздражает, когда сравниваешь с динамическими массивамив Дельфи. :)
← →
Юрий Зотов © (2006-10-10 00:06) [31]> Джо © (09.10.06 23:20) [24]
> Ну почему хвилософии?
Потому что "передача параметра процедурного типа, который будет вызываться для каждого элемента коллекции" - это 11 слов.
А "callback" - это 1 слово. Причем придуманное давным-давно.
"Keep It Simple".
:o)
> jack128 © (09.10.06 23:26) [25]
> А людей, которые понимают его - не так и много. Вот и приходится
> принудительно заставлять народ следовать ему...
Вот именно поэтому такое ощущение и сложилось.
"Хищные вещи века"...
← →
Джо © (2006-10-10 00:08) [32]> [31] Юрий Зотов © (10.10.06 00:06)
> > Джо © (09.10.06 23:20) [24]
>
> > Ну почему хвилософии?
>
> Потому что "передача параметра процедурного типа, который
> будет вызываться для каждого элемента коллекции" - это 11
> слов.
>
> А "callback" - это 1 слово. Причем придуманное давным-давно.
А, Вы об этом. Ну, так я это исключительно в описательных целях. Ибо, на разъяснение понятия "колбэк" — как раз и нужно около 11 слов. У кого выйдет больше — я не виноват :)
← →
Ketmar © (2006-10-10 00:15) [33]>[30] isasa(c) 10-Oct-2006, 00:02
>type *var; // type var[];
>type **var; // type var[][];
>с последующей
>var = (type*)calloc(nSize, typeof(type));
а это и не жаба уже вовсе, на?
← →
isasa © (2006-10-10 00:20) [34]Ketmar © (10.10.06 00:15) [33]
Угу.
Жаба еще не успела достать.
← →
Ketmar © (2006-10-10 00:21) [35]да ладно тебе. не, писал я на ней немного. язык как язык -- в меру глупый, в меру простой. вот библиотеки... это да. %-)
← →
isasa © (2006-10-10 00:27) [36]Ketmar © (10.10.06 00:21) [35]
вот библиотеки... это да.
Ооо! Это отдельная песня. Мне NetBeans предложил >400 штук и я прозрел и понял, что выбирать долго придется.
Счастливые люди, я их понимаю - JBoss, остальных на костер :)
← →
Юрий Зотов © (2006-10-10 00:30) [37]> Ketmar © (10.10.06 00:21) [35]
Даже и в языке - убивает хотя бы обилие скобок. Наследие C ?
if (лог_выражение)...
Мы не в силах распознать лог_выражение и без скобок?
obj.func()
Мы не в силах отличить метод от поля и без скобок?
И т.д. А в итоге 4 и более закрывающие скобки подряд - это норма.
Раздражает.
← →
Ketmar © (2006-10-10 00:31) [38]>[37] Юрий Зотов(c) 10-Oct-2006, 00:30
>Даже и в языке - убивает хотя бы обилие скобок. Наследие C?
таки да. специально делали на цэ похожим -- чтобы народ переманивать было проще. %-(
← →
jack128 © (2006-10-10 00:36) [39]Ketmar © (10.10.06 0:31) [38]
таки да. специально делали на цэ похожим -- чтобы народ переманивать было проще. %-(
ну дык в дельфи же тоже можно писать:
if (a = b) then
c();
но никто не говорит, что дельфя сишников переманивает :-D
← →
Джо © (2006-10-10 00:38) [40]> [39] jack128 © (10.10.06 00:36)
> Ketmar © (10.10.06 0:31) [38]
> таки да. специально делали на цэ похожим -- чтобы народ
> переманивать было проще. %-(
>
> ну дык в дельфи же тоже можно писать:
> if (a = b)
> then
> c();
> но никто не говорит, что дельфя сишников переманивает :-
> D
А вот делфистов на Це переманить сложнее, ибо
if a = b then
c;
писать там нельзя :)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.048 c