![]() |
Модераторы: LSD Страницы: (144) « Первая ... 47 48 [49] 50 51 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
kolesnle |
|
|||
![]() Упертый сишник ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 22.3.2013 Репутация: нет Всего: нет |
||||
|
||||
Beltar |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Ну легкого у меня не будет, обычно наоборот такие функции весьма сложные:
Считаем количество вызовов вложенных процедурок и сэкономленных строк. Это сообщение отредактировал(а) Beltar - 11.4.2013, 17:34 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
||||
|
|||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
Zloxa,
k0rvin, вашу дискуссию о проблемах логики я нашел чрезвычайно занимательной и познавательной. С нетерпением жду ее продолжения и доведения до логического завершения. ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Ну собственно... Попробую по-другому: каким образом этот код показывает костыльность замыканий? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Ну давай то же самое через замыкания. Или пример попроще придумать?
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Конечно, мне как-то неуперлось с этой простыней разбираться. =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
k0rvin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
теперь с анонимными функциями без замыканий:
теперь с замыканиями:
то же с вложенными подпрограммами (обозначения типов опущены для большего подобия):
Это сообщение отредактировал(а) k0rvin - 11.4.2013, 21:36 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Ну так вакансия-то старая, щас может уже не ищут. Добавлено через 1 минуту и 55 секунд
|
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
||||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
2 k0rvin:
И где тут вложенные подрограммы? Функции фильтрации действия с объектом тут внешние и в общем-то могут быть любые. Кстати, проще всего в реализации по-моему вот-так:
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Это не гибко и нарушает принцип single responsibility или как там его. Ну и создавать на каждый чих add<n> как-то не удобно. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Твой вариант означает сразу формирование еще одного экземпляра списка, т. е. его надо создать, а потом еще копировать данные, возможный подход, но не в 100% случаев. Если у тебя миллион элементов в единственном списке, и удаляется в среднем половина с забыванием остатка, то это одно, а если списков много, то это немного другое. Что касается удаления, то тут вообще все кисло. Ну допустим есть:
И вот в ProcessMethod требуется удалить элемент... Ну можно Remove(V,<Direction>) вызвать, но это поиск и работать будет просто неправильно, т. к. сбиваются внутренние счетчики. Кстати, я попробовал это сделать на TList<Integer> из 10 элементов от 1 до 10, удалилоcь только 5, причем в отличие от кривого (надо-то downto) for i:=0 to List.Count-1 do Delete List(i) никаких ошибок не выдало, что тоже плохо. Т. е. если удалять\добавлять ничего не надо, то лучше так, есл надо, то может и стоит еще один список сделать. Это сообщение отредактировал(а) Beltar - 12.4.2013, 08:15 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Вовсе не обязательно, можно использовать прокси-коллекции. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Это как? Гугл на русском вообще такого термина не знает.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Ну это не какой-то самостоятельный термин. Достаточно загуглить паттерн проектирования "proxy" (может он здесь не совсем подходит, но смысл тот же). Т.е. просто filter возвращает коллекцию, которая сама не содержит элементов, а только указатель на исходную коллекцию и компаратор. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |