Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/70: Рейтинг темы: голосов - 70, средняя оценка - 4.87
 Аватар для Chak-Nuris
2 / 2 / 1
Регистрация: 17.03.2015
Сообщений: 110

Зачем нужны объекты?

21.04.2015, 15:54. Показов 18543. Ответов 324
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зачем нужны объекты?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2015, 15:54
Ответы с готовыми решениями:

Зачем в начале файла utf-16 нужны байты 0XFF и 0XFE?
Друзья! Хоть убей не пойму, зачем перед строкой нужны байты 0xFF 0xFE. Везде можно прочесть, что они нужны, чтобы указать считывающему...

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

Зачем нужны блок-схемы?
Приходилось слышать мнение, что блок-схемы строятся по программному коду для каких-либо целей, например, объяснения алгоритма работы...

324
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 20:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от korvin_ Посмотреть сообщение
Я уже рассказал об этом TheFox'у, отвечая на его сообщение о состоянии, перед тем как пример опубликовать. Можешь почитать, не возражаю.
Не посмотрел на паскалевский аналог сначала. Ну и зачем такие сложности из такой простой циклы?

Добавлено через 2 минуты
Цитата Сообщение от TheFox Посмотреть сообщение
то есть никаких изменений аргументов где-то за пределами стека
Стек сам по себе состояние так как же и любые данные. Но стэк для этого предназначен - для хранения состояний. это его суть.
Да кстати а как же указатели?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
23.04.2015, 20:53
Цитата Сообщение от TheFox Посмотреть сообщение
Потому что в чистом лямбда-исчислении все должно быть грубо говоря "локально", то есть никаких изменений аргументов где-то за пределами стека, никаких сайд эффектов (изменения состояний). В этом и есть отличие подходов, а иначе не было бы смысла отделять его от процедурного подхода -- процедура тоже принимает аргументы и возвращает значения.
Как связаны замыкания и изменения? Замыкания — это всего лишь захват окружения, необходим для корректного связывания имён (переменных) и значений.

Haskell
1
2
3
f g x = \ y -> g x y
inc = f (+) 1
double = f (*) 2
— замыкания есть, побочных эффектов нет.

Добавлено через 2 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Не посмотрел на паскалевский аналог сначала. Ну и зачем такие сложности из такой простой циклы?
Нет, ты всё ещё не до конца понял. Это пример просто для демонстрации, как все манипуляции с состояниями легко перекладываются на ФП (на фундаментальном уровне).
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 20:55
Вопрос - ЗАЧЕМ?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.04.2015, 20:56
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
И не только слышал а и в компорт оным тыкал.
На тогда альтернативу
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Чистоты от чего?
vector.begin(), array.begin(), string.begin()... Все эти геттеры, сеттеры, акцессоры, селекторы это фееричный дубляж функционала. Это просто мега фейл
These function templates are defined in multiple headers: Each of these headers includes the generic templates for all container and array types and not simply a specific overload. The headers are: <iterator>, <array>, <deque>, <forward_list>, <list>, map, <regex>, <set>, <string>, <unordered_map>, <unordered_set> and <vector>.

Conversely, begin is overloaded (with a different definition) in headers <initializer_list> and <valarray>.
Цитата Сообщение от TheFox Посмотреть сообщение
Ну, если трактовать вычисления настолько широко
Насколько широко? Ответьте себе на вопрос: с какой целью люди разработали автомат?
Цитата Сообщение от TheFox Посмотреть сообщение
А что там связывать? Объекты и классы это по-сути всего лишь удобный (ну, для некоторых, неудобный) способ описать данные и процедуры.
Доказано - неудобный и вредный. Читайте прошлые посты.
Цитата Сообщение от TheFox Посмотреть сообщение
Если четко следовать лямбда-исчислению, то никаких замыканий быть не должно.
Что это? λx.x + 1
Lisp
1
2
3
4
5
(define (foo)
  (lambda (x) (+ x 1)))
> ((foo) 10)
11
>
Цитата Сообщение от TheFox Посмотреть сообщение
Функции в лямбда-исчислении и функции в теории автоматов это разные функции, вот и все
Функция везде функция. У нее есть область значений и область определений. Вот и всё.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 20:58
Цитата Сообщение от korvin_ Посмотреть сообщение
замыкания есть, побочных эффектов нет
Если есть переменные значения которых можно изменять из вне то есть и сайд эффекты. если нет возможности изменять извне - то зачем тогда нужно замыкание?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.04.2015, 20:59
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вопрос - ЗАЧЕМ?
потому что ООП - уродство, а объекты не нужны. Очевидно же.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:00
Цитата Сообщение от castorsky Посмотреть сообщение
с какой целью люди разработали автомат
Ну у Юджина Стоунера - это хобби было. У Форгимлера и Шмайсера - профессия. А Мише Калашникову - ну чтобы буржуев пострелять.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.04.2015, 21:02
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если есть переменные значения которых можно изменять из вне то есть и сайд эффекты
Что значит "извне"? Вполне легитимным вызовом функции можно изменить содержание замыкания. Это не "извне", это функция делает в ее законной области видимости.

Добавлено через 44 секунды
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну у Юджина Стоунера - это хобби было. У Форгимлера и Шмайсера - профессия. А Мише Калашникову - ну чтобы буржуев пострелять.
Ваганыч снова в строю xD
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:06
Цитата Сообщение от castorsky Посмотреть сообщение
потому что ООП - уродство, а объекты не нужны. Очевидно же.
Еще аргументы есть? Ну или существующие раскройте.
Ну и еще мало понятен термин сайд-эффект применительно к объектам. по большому счету объект это такая штука которая самостоятельно заботится об собственном состоянии и его изменениях в взаимосвязи с окружающими (т.е. ккаждый объект сам по себе ТАКОЙ САЙДЭФФЕКТИЩЕ ГОДЗИЛЛА ПРЯМ). И пользуется он как раз для того чтобы связать что либо а потом не париться что с чем связано и как обратывается (имеется в виду обработка пишется внутри класса а вышестоящий объект уже ни о чем не париться). И если целью мат модели к примеру является накопление как объектов так и взаимосвязей между ними с учетом системы ограничений, то как бы ЗАЧЕМ ИЗБАВЛЯТЬСЯ ОТ ТОГО ЧТО ВЫ НАЗЫВАЕТЕ САЙД-ЭФФЕКТОМ?
0
 Аватар для TheFox
131 / 67 / 10
Регистрация: 13.05.2013
Сообщений: 437
23.04.2015, 21:07
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Стек сам по себе состояние так как же и любые данные.
Не-не-не, аргументы (входные данные) это не состояние. Так мы опять придем к машине Тъюринга, а у нас другая штуковина. Вообще, в чистом лямбда-исчислении, как формальной системе никакого стека нет, там есть хитрая штука под названием Y-комбинатор, но зачем забивать этим голову, если говорить о языках программирования, а не лямбда-исчислении, как математической дисциплине.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.04.2015, 21:13
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну или существующие раскройте.
Читать тред сначала и ходить по ссылкам. Аргументы более чем убедительные. Я не могу, ты и про сайд эффекты по наслышке знаешь.
C++
1
2
3
foo() {
  cout << "ololo";
}
фот тебе и сайд эффект
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:19
Цитата Сообщение от castorsky Посмотреть сообщение
Читать тред сначала и ходить по ссылкам. Аргументы более чем убедительные. Я не могу, ты и про сайд эффекты по наслышке знаешь.
Ты про то что поток cout может быть переназначен? так это так задумано. чтобы я мог туда дать любое назначение вывода данных. Учите парадигму трубопровода (pipeline).
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
23.04.2015, 21:25
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если есть переменные значения которых можно изменять из вне то есть и сайд эффекты. если нет возможности изменять извне - то зачем тогда нужно замыкание?
Чтобы имя оставалось связанным со значением при выходе из области видимости, в которой это имя определено. В противном случае имя окажется не связано, значение, если оно было создано на стеке, будет уничтожено. Это как передать адрес значения, созданного на стеке, во вне процедуры и попытаться работать с ним после завершения работы этой процедуры. Допустим, у нас есть некий процедурный язык с поддержкой вложенных функций, но не являющихся замыканиями:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
type TInc = function(Integer): Integer;
 
function MakeInc(x: Integer): TInc;
  function MustBeAClosure(y: Integer): Integer;
  begin
    Result := x + y;
  end;
begin
  Result := MustBeAClosure;
end; (* Выход из области видимости x *)
 
begin
  Inc1 :=
    MakeInc(1); (* Здесь x существует *)
  WriteLn(Inc1(2)); (* А здесь уже нет, получаем ошибку *)
end.
Фактически в турбопаскале этот код и не скомпилировался бы даже, насколько я помню.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:33
Цитата Сообщение от TheFox Посмотреть сообщение
Y-комбинатор
Он наерное Великий этот Y?

Добавлено через 7 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
Допустим, у нас есть некий процедурный язык с поддержкой вложенных функций, но не являющихся замыканиями:
У меня на C++ вложенных функций нет. И нафиг не нужны. И на паскале никада тако дурью не маялся. Привет Вирту.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.04.2015, 21:33
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ты про то что поток cout может быть переназначен?
Нет
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:35
Цитата Сообщение от castorsky Посмотреть сообщение
Нет
А про что?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.04.2015, 21:35
Fulcrum_013, всё с тобой понятно. ООП - предел зерно.

Добавлено через 30 секунд
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А про что?
в гугле забанили?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:36
Цитата Сообщение от castorsky Посмотреть сообщение
Я не могу, ты и про сайд эффекты по наслышке знаешь.
А откуда мне о них знать если я думаю что пишу?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
23.04.2015, 21:36
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
У меня на C++ вложенных функций нет.
А компилятор g++ внезапно поддерживает вложенные функции.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
И на паскале никада тако дурью не маялся. Привет Вирту.
Ну мы уже поняли уровень твоей образованности, да.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.04.2015, 21:36
Цитата Сообщение от castorsky Посмотреть сообщение
в гугле забанили?
Вообщето я гугл забанил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2015, 21:36

Что такое классы и зачем они нужны?
Здравствуйте! Объясните ,что такое классы и зачем они нужны? Я прочитал кучу всего про классы, но так и не понял, зачем они нужны.

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Зачем упаковывать структуры и объекты в интерфейсы?
Объясните пожалуйста кто-нибудь человеческим языком зачем упаковывать структуры и объекты в интерфейсы?

Зачем нужны классы?
Изучаю СИ++ после изучения СИ. Не пойму какой смысл в классах. То что они делают можно реализовать с помощью функций, структур и обычных...

Зачем нужны исключения
Пожалуйста можете привести пример, когда они действительно нужны? На лекции были примеры &quot;деление на ноль&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
160
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru