Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В поисках совершенных абстракций 
:(
    Опции темы
atomicxp
  Дата 3.5.2009, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Цитата(mes @  3.5.2009,  18:43 Найти цитируемый пост)
Я опять не уловил сути,  что доказывает Ваш пример ? 

Да ничего он не доказывает. Просто можно программировать так, а можно иначе. Мне надо иначе.
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(atomicxp @  3.5.2009,  17:48 Найти цитируемый пост)
Да ничего он не доказывает. Просто можно программировать так, а можно иначе. Мне надо иначе. 

То что ищете иной путь, я понял. Но не уловил в чем именно преимущества и отличия вашего подхода в отличие к примеру от стл, которой Вы, как я понял, недовольны.
Прошу объяснить на пальцах, вот два кода :

Цитата("atomicxp")

Код

    template<typename TSequence> class IAddition
    {
    public:
     
        virtual TSequence& Addition(const TSequence& addend) const = 0;
        virtual TSequence& operator+(const TSequence& addend) const = 0;
        static TSequence& Addition(const TSequence& augend, const TSequence& addend);
    };


Цитата("stl")

 
Код

 template <class _Tp>
    struct plus : public binary_function<_Tp, _Tp, _Tp>
    {
      _Tp
      operator()(const _Tp& __x, const _Tp& __y) const
      { return __x + __y; }
    };



Это сообщение отредактировал(а) mes - 3.5.2009, 18:56


--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Цитата(mes @  3.5.2009,  18:56 Найти цитируемый пост)
Прошу объяснить на пальцах, вот два кода :

На таких примитивных примерах почти не о чём говорить. Кардинальные различия будут видны при построении системы из множества понятий. Пока можешь принять как факт, что STL это обобщённое функциональное программирование, так же как и Boost.
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(atomicxp @  3.5.2009,  18:05 Найти цитируемый пост)
Кардинальные различия будут видны при построении системы из множества понятий. Пока можешь принять как факт, что STL это обобщённое функциональное программирование, так же как и Boost. 

Тогда  хотелось бы услышать от Вас трактовку двух понятий :
1. обобщённое функциональное программирование
2. обобщённое объективное программирование


--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Цитата(mes @  3.5.2009,  19:12 Найти цитируемый пост)
Тогда  хотелось бы услышать от Вас трактовку двух понятий :
1. обобщённое функциональное программирование
2. обобщённое объективное программирование 

Вот я о том и говорю, ты называешь обобщённое объектно-ориентированное программирование - объективным, как будь-то тебе даже все равно как оно называется. А для того, чтобы понять ООП надо мыслить по другому и ориентироваться на объекты, а не на функции.
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(atomicxp @  3.5.2009,  18:31 Найти цитируемый пост)

Вот я о том и говорю, ты называешь обобщённое объектно-ориентированное программирование - объективным, как будь-то тебе даже все равно как оно называется. 

ну предположим, так как вначале надо разобраться как мыслит автор. 
Цитата(atomicxp @  3.5.2009,  18:31 Найти цитируемый пост)
А для того, чтобы понять ООП надо мыслить по другому и ориентироваться на объекты, а не на функции.

могу я спросить, Вы будете нас просвещать ? или ограничетесь лишь абстрактными высказываниями ?  smile 
и в чaстности :

Цитата(mes @  3.5.2009,  18:12 Найти цитируемый пост)
хотелось бы услышать от Вас трактовку двух понятий :
1. обобщённое функциональное программирование
2. обобщённое объективное программирование 


Добавлено через 1 минуту и 41 секунду
а также , если можно
Цитата(mes @  3.5.2009,  16:51 Найти цитируемый пост)
Цитата

они должны принадлежать классу

зачем ?




--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Цитата(mes @  3.5.2009,  19:43 Найти цитируемый пост)
могу я спросить, Вы будете нас просвещать ? или ограничетесь лишь абстрактными высказываниями ?  smile

А я здесь вовсе не для того, чтобы кого-то чему-либо учить. Просто мысли вслух о создании абстрактного ядра.

Определение:
1. Функциональное программирование
2. Обобщённое объективное программирование - не знаю такого

Это сообщение отредактировал(а) atomicxp - 3.5.2009, 20:06
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(atomicxp @  3.5.2009,  18:50 Найти цитируемый пост)
1. Функциональное программирование 

Ну и где общее между приведенной по ссылке парадигмой и воплощением стл ?!
Цитата(atomicxp @  3.5.2009,  18:50 Найти цитируемый пост)
2. Обобщённое объективное программирование - не знаю такого

Ну так сами же писали про обобщенное объектноориентирование программирование ОООП smile

Цитата(atomicxp @  3.5.2009,  18:50 Найти цитируемый пост)
Просто мысли вслух о создании абстрактного ядра.

Понятно. Просто высказываетесь, а я то думал Вы ради дискуссии открыли тему. 




--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Несмотря на то, что операции сложения и вычитания являются сущностями, их функции естественно называются по другому, а именно суммой и разностью. В книге "Совершенный код" рекомендуют именовать функции с типом не void по возвращаемому результату. В следствии этого проведено маленькое изменение, одно из многих предстоящих в будущем.

Код
namespace Arithmetic
{
    // Операция сложения
    template<typename TSequence> class Addition
    {
    public:
        // Сумма (объектная)
        // arg addend="добавляемое"
        // return "сумма"
        virtual TSequence& Sum(const TSequence& addend) const = 0;
        // Оператор сложения
        // arg addend="добавляемое"
        // return "сумма"
        virtual TSequence& operator+(const TSequence& addend) const = 0;
        // Сумма (статическая)
        // arg augend="увеличиваемое"
        // arg addend="добавляемое"
        // return "сумма"
        static TSequence& Sum(const TSequence& augend, const TSequence& addend);
    };
}

namespace Arithmetic
{
    // Операция вычитания
    template<typename TSequence> class Subtraction
    {
    public:
        // Разность (объектная)
        // arg subtrahend="вычитаемое"
        // return "???"
        virtual TSequence& Difference(const TSequence& subtrahend) const = 0;
        // Оператор вычитания
        // arg subtrahend="вычитаемое"
        // return "разность"
        virtual TSequence& operator-(const TSequence& subtrahend) const = 0;
        // Разность (статическая)
        // arg minuend="уменьшаемое"
        // arg subtrahend="вычитаемое"
        // return "разность"
        static TSequence& Difference(const TSequence& minuend, const TSequence& subtrahend);
    };
}


Срочное сообщение, специально для mes. Посмотри пример, в нём наглядно показано, чем отличается объектно-ориентированное программирование от функционального. В функциональном у тебя бы не было сущности операции, была бы только функция возвращающее по какому-либо алгоритму значение.

Добавлено через 2 минуты и 3 секунды
Цитата(mes @  3.5.2009,  20:32 Найти цитируемый пост)
Понятно. Просто высказываетесь, а я то думал Вы ради дискуссии открыли тему. 

Ну скажем так, если меня будут поправлять, когда буду ошибаться насчёт ООП, я совсем не буду против. Однако если кто-то хочет программировать в функциональном стиле, я не хочу им мешать.
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(atomicxp @  3.5.2009,  19:36 Найти цитируемый пост)
Ну скажем так, если меня будут поправлять, когда буду ошибаться насчёт ООП, я совсем не буду против. Однако если кто-то хочет программировать в функциональном стиле, я не хочу им мешать.

Чтоб поправлять, надо понять что Вы подразумеваете, а Вы пока не очень ясны в объяснениях.
А насчет поправки : то, что Вы называетe функциональным стилем программированием, называется - процедурным. 
 smile

Добавлено @ 20:45
Цитата(atomicxp @  3.5.2009,  19:36 Найти цитируемый пост)
Однако если кто-то хочет программировать в функциональном стиле, я не хочу им мешать

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

Добавлено @ 20:45
Цитата(atomicxp @  3.5.2009,  19:36 Найти цитируемый пост)
Однако если кто-то хочет программировать в ...тиле, я не хочу им мешать

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


Это сообщение отредактировал(а) mes - 3.5.2009, 20:46


--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Цитата(mes @  3.5.2009,  20:41 Найти цитируемый пост)
А насчет поправки : то, что Вы называетe функциональным стилем программированием, называется - процедурным.

Очевидно ты не читал топик из которого пришла эта тема. Там я уже рассказал, что процедурное программирование оно же функциональное. Сейчас я употребляю функциональное, потому что в C++ отсутствует понятие процедура, вместо этого в возвращаемом значении применяется пустой тип - void.

Ну и второе объяснение, почему весь тот топик я именовал программирование процедурным, а сейчас называют функциональным, потому что я целиком и полностью сосредоточился на C++. И есть такая книга "Язык программирования C++" автор Бьерн Страуструп, так вот он называет этот вид программирования функциональным, а не процедурным.

Пока что от тебя вижу не обсуждения, а придирки, и это довольно скучно. Прочитай с 10 по 15 главу только что упомянутой книги, раздел называется "Механизмы абстракции". А то так мы попросту ни о чём говорим.
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(atomicxp @  3.5.2009,  19:51 Найти цитируемый пост)
Пока что от тебя вижу не обсуждения, а придирки, и это довольно скучно.

Перед тем как поправить, я спросил, что Вы подразумеваете под этими терминами .
Однако Вы ответили не :
Цитата(atomicxp @  3.5.2009,  19:51 Найти цитируемый пост)
ам я уже рассказал, что процедурное программирование оно же функциональное.

a :

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



Это сообщение отредактировал(а) mes - 3.5.2009, 21:01


--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Цитата(mes @  3.5.2009,  20:59 Найти цитируемый пост)
Если для Вас это одно и то же, то тогда я не вижу смысла в поправках, да и в дальнейшем участии в этой теме. Еще раз успехов в этом нелегком деле. 

Я не хочу возвращаться к теме как корпорации нас имеют подменяя понятия на те которые им выгодны. Хочешь воспринимать функциональное программирование по другому, не как процедурное, твоё право. Лишь логическое и объектно-ориентированное программирование имеют реальное, а не выдуманное пиарщиками отличие.

Добавлено через 9 минут и 4 секунды
А вообще всё это печально, люди якобы понимают разницу между функциональным и процедурным программированием, но ничего не смыслят в ООП. smile 
PM MAIL WWW Skype GTalk Jabber   Вверх
mes
Дата 3.5.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Не смог удержаться чтоб не ответить.

Цитата(atomicxp @  3.5.2009,  20:12 Найти цитируемый пост)

Я не хочу возвращаться к теме как корпорации нас имеют подменяя понятия на те которые им выгодны.

Однако переняли их традицию, по крайней мере в этой теме. 

Цитата(atomicxp @  3.5.2009,  20:12 Найти цитируемый пост)
Хочешь воспринимать функциональное программирование по другому, не как процедурное, твоё право.

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

Цитата(atomicxp @  3.5.2009,  20:12 Найти цитируемый пост)
Лишь логическое и объектно-ориентированное программирование имеют реальное, а не выдуманное пиарщиками отличие.

Откуда такая уверенность  ?! 

Цитата(atomicxp @  3.5.2009,  20:12 Найти цитируемый пост)
А вообще всё это печально, люди якобы понимают разницу между функциональным и процедурным программированием, но ничего не смыслят в ООП. smile  

А вот это в самую точку. Как в зеркало в  воду глядите ! smile


Это сообщение отредактировал(а) mes - 3.5.2009, 21:55


--------------------
PM MAIL WWW   Вверх
atomicxp
  Дата 3.5.2009, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.5.2009
Где: Удмуртия, Ижевск

Репутация: нет
Всего: 1



Какой ты mes неугомонный  smile Кончай уже флуд разводить, а то опять мой топик во флейм уедет. Пока по теме высказался только Lazin.

PM MAIL WWW Skype GTalk Jabber   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.