Интересное мнение про ООП - страница 12

 
fxsaber:

Понимаю, что дело в привычке и знании синтаксиса, но мне очень тяжело въехать в код даже при том, что являюсь автором оригинала.

На MQL в ФП стиле к сожалению ни как. Если кратко то эксплуатируется следующий подход: есть условия оферты (PammSet), есть функции которые условия оферты конвертируют в финансовый результат (AccountRecord). Оба типа неизменяемые, задаются при создании. Задача сводится к генерации множества оферт и сопоставлению каждого элемента этого множества с фин. результатом через функцию сопоставления (Set1, Set2, Set3). Ключевым элементом является функция SelectЖ применение произвольной функции вида Func<in, out> к каждому элементу последовательности.

 

Жак Фреско про ФП и ООП


 
А чем это ФП принципиально отличается от использования указателей на функции?
 
Dmitry Fedoseev:
А чем это ФП принципиально отличается от использования указателей на функции?

это оно и есть, просто в ФП синтаксис по удобнее.

на столько удобнее, что вся архитектура кода на нем строиться

к примеру можно создать блок который будет получать задание которое будет выполнять при клике мышки.... к примеру для ГУИ. 

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

пример 

Кнопка1.MouseClickAdd(()=>(тут ссылка на нашу функцию в стиле Funk();))

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

при этом привязка функции будет взята из окружения видимости. т,е. можно класс добавить да чего угодно. Т.е. мы добавляем не итоговый результат функции а то какую функцию надо выполнить(вызвать) когда наступит это условия

 
Dmitry Fedoseev:
А чем это ФП принципиально отличается от использования указателей на функции?

ФП - реализация лямбда-исчисления, а императивное программирование (включающее ООП) - реализация машины Тьюринга.

 
Aleksey Nikolayev:

ФП - реализация лямбда-исчисления, а императивное программирование (включающее ООП) - реализация машины Тьюринга.

Логично)

 

думаю, что обсуждаем "мух и котлеты"

если ФП является офигенной заменной ООП, покажите пример GUI выполненного на ФП, не показанный выше пример 

Кнопка1.MouseClickAdd(()=>(тут ссылка на нашу функцию в стиле Funk();))

а реализацию самих кнопок, чекбоксов, скролбаров и т.д. - и все выполненного на ФП


имхо, если помогает ФП упростить формализацию и решение задачи, чтобы не городить зависимость С++  от линейного выполнения кода (сверху вниз) - отлично! но обсуждать, что ФП это альтернатива ООП (который вырос из процедурного стиля), имхо очередное сравнение мягкого и теплого

 
Igor Makanu:

думаю, что обсуждаем "мух и котлеты"

если ФП является офигенной заменной ООП, покажите пример GUI выполненного на ФП, не показанный выше пример 

а реализацию самих кнопок, чекбоксов, скролбаров и т.д. - и все выполненного на ФП


имхо, если помогает ФП упростить формализацию и решение задачи, чтобы не городить зависимость С++  от линейного выполнения кода (сверху вниз) - отлично! но обсуждать, что ФП это альтернатива ООП (который вырос из процедурного стиля), имхо очередное сравнение мягкого и теплого

Тут как раз одно не мешает другому, а дополняет.

да и при желании на ФП тоже можно все также городить как на ООП прям с Тайкой же структурой - хотя занятие очень сомнительное
 
Alexandr Andreev:

Тут как раз одно не мешает другому, а дополняет.

я про это и пишу

а статья из первого сообщения топика, пытается сравнить 2 совершенно разные, по назначению, парадигмы программирования

 
Aleksey Nikolayev:

ФП - реализация лямбда-исчисления, а императивное программирование (включающее ООП) - реализация машины Тьюринга.

Исчерпывающе! Ни добавить ни прибавить ))