Базовое отличие ООП от ФП
От: Разраб  
Дата: 05.03.24 02:02
Оценка:

/// Simplicity
module FP =
    let add_v1 = fun a b -> a + b
    let add_v2 = (+)
    let add_v3 a b = a + b


FP.add_v1 1 1 |> printfn "%d"

/// Complexity
module OOP =
    type Add(a) =
        class
            member it.Value = a
            member it.Plus(b) = Add((b :> Add).Value + a)
        end

OOP.Add(1).Plus(OOP.Add(1)).Value |> printfn "%d"


Выше ООП и ФП подход к решению одной задачи.
В чем принципиальное отличие?
На мой взгляд ФП ориентировано на обработку данных,
в то время как ООП старается абстрагировать проблему в некоторую модель,
что делать код намного сложнее в понимании.
Появляется неявный контекст, "за лесом не видно деревьев".
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.