Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 20:32   #221
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Когда кто-то в другом классе к примеру, пакете, модуле и т.д. может узнать кто да еще и сколько используют данный объект, вам не кажется это не правильным? Как по мне так это может подтолкнуть к обходу предоставленный механизмов.
обойти не даст сам ЯП, ибо каждой ссылке соответствует единица в счетчике.
а если ктото держит ссылку, то не имеет разницы знаем мы значение счетчика ссылок или нет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2011, 21:33   #222
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
я еще вот подумал, сборщик это хорошо, но всетаки и нужно иметь право узнать значение счетчика ссылок.
Мне кажется это неудачная идея. Приведите пример, когда это надо.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.12.2011, 21:38   #223
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Приведите пример, когда это надо.
например при реализации динамически подгружаемой(и выгружаемой, для экономии памяти) плагиной системе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.12.2011, 18:33   #224
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
А вот так хочу! И тут уж вы ничего не поделаете
Вы не понимаете, что мы сначала решили, что указателей не будет (уже точно), а теперь думаем, как их заменить так, чтобы они вообще не требовались? А для их отсутствия есть объективнейшие причины - код с указателями малопонятен и небезопасен

Цитата:
Сообщение от Utkin Посмотреть сообщение
Считай это эволюцией for-->foreach-->map
Кстати, в питоне есть и map, и инфиксный for. Так вот, for удобней в тех случаях, когда нет функции для map'а, ведь с for'ом лямбду писать не нужно:
Код:
[x**2 + 3*x for x in nums_list]
сравните:
Код:
map(lambda x: x**2 + 3*x, nums_list)
Кстати, там инфиксный for ещё и функцию filter заменяет:
Код:
[x**2 + 3*x for x in my_list if x > 0]
сравните:
Код:
map(lambda x: x**2 + 3*x, filter(lambda x: x > 0, my_list))
Но по сути всё это одно и то же, разница лишь в синтаксисе. Хотя над подобным синтаксическим сахаром стоит подумать...

Последний раз редактировалось anyx; 24.12.2011 в 18:47.
anyx вне форума Ответить с цитированием
Старый 07.01.2012, 17:21   #225
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

думаю, надо апнуть тему, не порядок на третьей странице с краю находится
Так вот к автору, как думаете упорядивать, чтобы всевозможные отсчёты начинались с 0 или с 1???
Циклы, массивы, колекции? А то форум придётся создавать по Вашему компилятору
Ципихович Эндрю вне форума Ответить с цитированием
Старый 07.01.2012, 17:41   #226
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Так вот к автору, как думаете упорядивать, чтобы всевозможные отсчёты начинались с 0 или с 1???
Циклы, массивы, колекции? А то форум придётся создавать по Вашему компилятору
отсчеты с нуля по умолчанию, но естественно с индексаторами никто не мешает сделать как хочешь в своих классах.(хотя не вижу особого смысла в этом, искл когда требует задача)

циклы тут обсуждались:
repeat->for->foreach->map(или аналог, см посты 206, 213-216)
while и do while.

Коллекции это часть стандартной библиотеки классов.

узким, нерассказанным мною, местом остается перегрузка операторов.
ну с самой перегрузкой ей быть, слишком уж удобная она.
но естественно с ограничениями, о них позже, сейчас всетаки не до них еще.

я больше думаю об индексаторах и индексируемых свойствах.

индексаторам быть, наверно лучше как в шарпе, ибо удобнее синтаксис.

а вот второе есть в Делфи выглядит так(применение):
Код:
List.Objects[0];List.Strings[0];
думаю лучше им быть, полезны всетаки
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 07.01.2012 в 17:47.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.01.2012, 18:41   #227
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

>посты 206, 213-216
ну извините, весь топик не читал
Ципихович Эндрю вне форума Ответить с цитированием
Старый 07.01.2012, 18:44   #228
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я потому и указал на конкретные посты где это обсуждалось.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.01.2012, 19:24   #229
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
отсчеты с нуля по умолчанию, но естественно с индексаторами никто не мешает сделать как хочешь в своих классах.(хотя не вижу особого смысла в этом, искл когда требует задача)
Охх щи... Ну вот, придётся писать кучу текста...

Всё в языке (массивы, списки, строки) должно индексироваться с единицы. Докажем методом от противного

Пусть у нас последовательности индексируются с нуля.
Для индексации с конца последовательности давно придуман полезный способ - отрицательные индексы. Т.е. индекс -3 означает 3 элемент с конца (А не 4, ведь -0 = 0, и первый с конца - это -1, а не -0). Мы же не хотим от этого удобного способа отказываться? Мы же не хотим писать a[length(a) - 1 - n]?
А теперь пусть у последовательности есть два метода: find и index. Оба ищут элемент в последовательности и возвращают его индекс. Только первый, если элемент не найден, генерирует исключение (например, ValueError), а второй возвращает -1. Предположим, что рассеянный программист забыл проверить результат вызова метода index и использовал его для индексации. Но в этом случае -1 будет действительным индексом (первый элемент с конца), и ошибка останется незамеченной, в то время как при индексации с единицы метод index мог бы возвращать 0, который точно является недействительным индексом.

У индексации с единицы есть ещё одно преимущество: можно писать a[n] вместо a[n - 1]

Теперь ещё кое-что. Надеюсь, в вашем языке будет операция взятия среза последовательности? (a[from:to] = [a[from], a[from+1], a[from+2], ..., a[to-1], a[to])
Так вот при работе со срезами индексация с нуля превращает код в говнокод а программирование - в ад. Тут я уже примеры приводить не буду. Скажу лишь, что намучился с этим в Python'е.

Кстати, индексы в срезе должны указываться включительно, и левый, и правый. Это я понял, когда мучался со срезами в питоне

А функция range должна возвращать, аналогично, с первого по последний элемент включительно: range(1, 5) = [1, 2, 3, 4, 5]. Это я понял, мучаясь с функцией range в питоне.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Коллекции это часть стандартной библиотеки классов.
Что такое коллекции?

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
узким, нерассказанным мною, местом остается перегрузка операторов.
ну с самой перегрузкой ей быть, слишком уж удобная она.
но естественно с ограничениями, о них позже, сейчас всетаки не до них еще.
Перегрузка, конечно, нужна, но она не заменит полностью generic-типы и классы типов (или интерфейсы). Какие соображения по поводу этих возможностей?

Последний раз редактировалось anyx; 07.01.2012 в 19:32.
anyx вне форума Ответить с цитированием
Старый 07.01.2012, 19:27   #230
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Что такое коллекции?
Классы способные структурированно хранить разнородные типы данных. Например, деревья, которые могут содержать в куче строки, числа и прочие объекты. В некоторых языках (например в ряде функциональных) нет такого понятия как коллекция. Там есть жесткое разделение между типами данных и способами их организации. А коллекция как класс тоже является типом, отсюда всякие неудобства. Вектор в Scheme (одномерный массив) - может содержать все что является данными - список, вектор, функцию и т.д. Про списки я вообще молчу. Любой уважающий себя функциональный язык программирования поддерживает списки, в которых также может храниться все что угодно.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 07.01.2012 в 19:30.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли подобный текст перевести на человеческий язык? alexxx777 Помощь студентам 0 24.05.2010 19:56
Как создать вид подобный SolidWorks. KemanSR Общие вопросы C/C++ 6 04.05.2010 21:30
Добавить модуль в phpnuke-подобный движок Able2Know Фриланс 3 23.04.2010 16:29
В Access есть тип данных "Счетчик".Есть ли подобный тип данных в MS Sql Server 2000? An_ton SQL, базы данных 5 16.01.2009 17:55