Я привык работать с функциональным программированием (в основном Haskell), и начинаю с OO (scala).
У меня возникли проблемы с переводом кода. Например, это определение Haskell для B-дерева:
data BTree a =
Leaf
|Node2 (BTree a) a (BTree a)
|Node3 (BTree a) a (BTree a) a (BTree a)
deriving (Eq,Read,Show)
Это довольно просто. Мое дерево пустое, или оно имеет значение и является отцом двух деревьев или является отцом из 3 под деревьев.
Что такое OO? Я понятия не имею. Я просто не могу понять, как я могу это сделать разумным способом.