* Я чув це раз і знову, і я намагаюся зрозуміти і підтвердити думку про те, що FP і OO є ортогональними. *
Перш за все, що означає ортогональність двох понять?
Цитата Вікіпедії: "Ортогональність гарантує, що модифікація технічного ефекту, що створюється компонентом системи, не створює і не поширює побічні ефекти для інших компонентів системи".
Просто це просто означає, що зміна в одній системі не має і не може вплинути на зміну в іншій системі.
Наприклад, автомобіль має ортогональні компоненти та елементи управління (наприклад, прискорення транспортного засобу не впливає ні на що інше, але на компоненти, що беруть участь виключно з функцією прискорення. Це не впливає, наприклад, на радіо (хоча я не впевнений, чи впливає це на відтворення компакт-дисків, оскільки мій часом пропускає)).
ПП максимально заохочує незмінність та чистоту. і ОО здається чимось, що побудовано для стану та мутації (злегка організована версія імперативного програмування?). І я розумію, що предмети можуть бути незмінні. Але OO, здається, означає для мене стан / зміни.
Вони здаються протилежними. Чи означає це, що вони ортогональні?
Свого роду. Проблема полягає в тому, що жодна з цих концепцій насправді не визначена важко. Але так, ви зрозуміли суть цього.