4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
14.01.2015, 11:28 | 41 |
Вложение не отменяет парадигмы. Посмотрите, как на прологе определяется предок: мать с отцом вложены в родителя, а предок и родитель в предка. От этого пролог стал императивным?
0
|
14.01.2015, 11:28 | |
Ответы с готовыми решениями:
926
ООП или функции ООП или Структурный подход? литература и/или статьи по ООП Гавнокоддинг или учить ООП? |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 11:40 | 42 |
Когда мы смотрим на закорючки в исходном коде,
мы воспринимаем текст сквозь призму парадигмы языка. Когда мы смотрим на закорючки оо-языка, мы видим "сущности, наделенные свойствами и умениями". И причем это тут интересно ооп вообще? Мне вот интересно, а вы вообще вчитываетесь в текст, прежде чем его комментировать? Мне не нужно этого объяснять. Объясните это господину, который в качестве автоматики предложил повсеместное использование макросов в клиентском коде. Причем не тривиальное использование. Понять во что превратится код можно только поняв устройство макроса. Такие же как и в сишке: ядро никогда не узнает о факте вызова вложенной функции, и о том, что она завершилась без дополнительных явных вызовов open/close Подробности см выше. И менее выразительный. Таки да. По определению понятия: Resource Acquisition Is Initialization "получение ресурса есть инициализация". Освобождение ресурса не входит в это определение. На питоне есть автоматические конструкторы. оо-модель питона принципиально ничем не отличается от приплюснутой.
0
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|
14.01.2015, 11:48 | 43 |
возвращайтесь когда основы хоть какие нибудь усвоите, а то вас читать даже не смешно. даете собственные определения понятиям, которые всем известны и приняты, и рассказываете при этом про какой то марамз.
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
||||||
14.01.2015, 12:02 | 44 | |||||
with делает явное неявным, болезный. А впрочем, что я распинаюсь, со стеной разговор продуктивней.
Без освобождения ресурса RAII не имеет никакого смысла. И?
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:06 | 45 |
Пруфы вы можете подсмотреть на хэтхантаре в разделе "ванкансии".
А что касается меня лично: я использую фп в повседневной практике. Например - метапрограммирования на шаблонах с++, вложенные шаблоно-лямбды, etc. Я не могу себе представить "объект", который не умеет захватывать ресурсы. Потому что такой объект не может хранить состояние. А значит не может быть механизмом. Не может быть "сущностью, наделенной свойствами и умениями". В любом случае такое ооп - какое то жалкое подобие, и мне это вряд ли будет интересно. Это не последняя, а именно что первая и единственная на данный момент, которая успешна. Именно это я просил вас показать с самого начала. Долго же пришлось вас окучивать. Теперь я вижу, что такое "динамическая перегрузка". Ну и что? В стандарте языка си вообще не сказано, что программист обязан пользоваться макросами. Все - это кто? Это - приведение. Ну и что? При чем тут вообще приведение? Возьмите какой нибудь язык, где в принципе не доступно ни приведение типов, ни прямой доступ к памяти Что с того? С точки зрения "низкого уровня" объекты на таком языке кусками памяти быть не перестали. Ню ню.
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
|
14.01.2015, 12:07 | 46 |
Ну вырази-ка мне своим выразительным x.method(y), такой, что выбор реализации осуществляется, не только по объекту x, но и по объекту y.
Или капитан выразительность покажет, как применить метод x.method(y, z) частично только к аргументам x и y, создав замыкание?
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:12 | 47 |
Судя по вашим темам в разделе "новичков с++", я уже понял, что вы не умеете шаблона с++.
Добавлено через 1 минуту Не уверен, что вы сможете рассказать мне что нибудь о с++ такого, чего бы я сам не смог бы разжевать и вам в рот положить. Добавлено через 1 минуту По этой причине мне не нравятся языки с мусоровозкой. Но это дело привычки. Главное, что бы объекты умели захватывать ресурс. Добавлено через 1 минуту И значит там есть RAII. Зачем вы мне показываете случай, когда оно не используется?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
14.01.2015, 12:15 | 48 | |||||
В шаблонах я дейставительно новичок. Но это не означает, что с помощью шаблонов можно на c++ декларировать прогу как последовательность вычисления функций в математическом понимании термина "функция". На c++ вообще то принято значение этого термина из процедурного программирования: функция есть подпрограмма, возвращающая значение через собственное имя (то есть в выражении, например,
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:17 | 49 |
http://en.wikipedia.org/wiki/Multiple_dispatch
Может быть я не до конца понял о чем вы спрашиваете, но там в разделе python есть неплохой пример использования. Добавлено через 16 секунд Можно. Синтаксис корявый. Суть - одна.
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
|
14.01.2015, 12:17 | 50 |
Ну так оглянись вокруг: Point { x : Real, y : Real }
ОМГ? Расскажи, какой ресурс захватывает объект точка, указанный выше? Алан Кей смотрит на тебя, как на школьника. Как что? Прояви уже хоть какие-то признаки интеллекта. Твои слова: «перегрузка пришла из процедурной парадигмы». В процедурных языках (Си, Паскаль) её нет. Так откуда она пришла? Более того, там даже не сказано, что программист обязан пользоваться Си. При том, что C++ позволяет легко любой якобы объект превратить в кусок памяти. Прям как в Си. И это будет не C++. Так что C++ — это тот же Си, только с кучей костылей для псевдо-ООП, ничем не лучше Gobject. Только доступа к этому низкому уровню из языка у программиста нет, поэтому для него они остаются объектами. Угу-угу.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:20 | 51 |
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
14.01.2015, 12:26 | 52 |
Покажи.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:27 | 53 |
это структура.
При желании можно воспринимать, как "сущность наделенную свойствами, но ничего не умеющая". Этакий частный случай ооп. Но если язык не предоставляет возможность создавать "сущности наделенные свойствами и умениями", то такая конструкция на языке скорее будет восприниматься, как сишная структура и не более того. см выше. Скучно. 1. А что, обязательно должна была придти из этих языков что ли? 2. По вашему, технология не возможно на процедурном языке? 3. Перегрузка функций в принципе не может быть продуктом никакой иной парадигмы кроме процедурной. Угадайте парадигму: Код
foo(type1) foo(type2) Попробуйте привести пример перегрузки функций, который не являл бы собой процедурную парадигму:
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
||||||
14.01.2015, 12:29 | 54 | |||||
А какже этот твой мегавыразительныйй C++ и RAII? Идёт лесом?
Лол. ОК.
О, может ты покажешь пример использования RAII в Питоне?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
14.01.2015, 12:33 | 55 |
Имеется последовательность вызовов двух подпрограмм, при этом возвращаемые значения не фигурируют, значит это процедуры, либо заменяющие их void-функции. Процедурная. Шаблон же отвечает лишь за автоматическую перегрузку и в исходник тела функции не лезет в принципе, соответственно тело пишется в той же парадигме, которая была до шаблонов. А вот если
Код
foo(foo(x))
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:33 | 56 |
Никто никого ни во что не превращает.
Я уже писал выше: с++ - мультипарадигма. Можно смотреть на вещи, как сквозь призму "низкого уровня", так и сквозь "высокого". С точки зрения низкого уровня - все объекты, это куски памяти. С точки зрения высокого - оопнутые сущности. Добавлено через 2 минуты Неужели лед тронулся? Да, для пользователя. Но не для сишника, который разрабатывает компилятор этого языка. Все дело в точки зрения на вещи, понимаете? Взгляд на вещи, способ абстрагирования - это и называется "парадигмой".
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:37 | 57 |
Обычно, новичкам в плюсах шаблоны кажутся сложными,
потому что язык они изучают начиная с процедурной/ооп. Шаблоны на самом очень просты. Нужно лишь изменить точку зрения. Посмотреть на них сквозь призму функциональной парадигмы. Сделайте это, и тогда стандартная библиотека не будет казаться вам "о боже, шо за на.." http://habrahabr.ru/post/118429/
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
14.01.2015, 12:39 | 58 |
Нет. c++ - процедурный язык с поддержкой ООП. Отказ от процедурной парадигмы на нём не возможен уже по самому правилу о том, что точкой входа является подпрограмма main, а от ООП возможен.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
14.01.2015, 12:40 | 59 |
Как был мегавыразительным, так им и остался.
Покажете ярко выраженную сущность наделенную свойствами и умениями.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
14.01.2015, 12:40 | 60 |
0
|
14.01.2015, 12:40 | |
14.01.2015, 12:40 | |
Помогаю со студенческими работами здесь
60
прога или игра ооп Mysqli ООП или процедурный подход Определить, программа с ооп или нет Изучаю ООП можно или нет так? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |