Примеры функционального программирование для новичков
Представь, что у тебя есть три волшебные машины: машина A, машина B и машина C. Каждая машина делает что-то особенное с предметами:
1. Машина A окрашивает вещи в зеленый цвет.
2. Машина B делает вещи в два раза больше.
3. Машина C превращает фрукты в овощи.
Теперь, используя язык программирования Haskell, мы можем создать код, который моделирует это поведение:
haskell
type Item = String
machineA :: Item -> Item
machineA item = "зеленый " ++ item
machineB :: Item -> Item
machineB item = "большой " ++ item
machineC :: Item -> Item
machineC "яблоко" = "маленькая красная морковка"
machineC item = item
transformItem :: (Item -> Item) -> (Item -> Item) -> (Item -> Item) -> Item -> Item
transformItem = (.) . (.)
В этом примере мы определяем тип Item для представления предметов. Мы также определяем функции machineA, machineB и machineC, которые соответствуют машинам A, B и C из нашего описания. Затем мы определяем функцию transformItem, которая позволяет нам применить три машины одна за другой к предмету.
haskell
main :: IO ()
main = do
let item = "яблоко"
let transformedItem = transformItem machineA machineB machineC item
putStrLn transformedItem
Здесь мы определяем item как "яблоко" и применяем функцию transformItem к нему, чтобы получить преобразованный предмет. Затем мы выводим результат на экран. В итоге, мы получим "большая зеленая морковка", как и ожидалось из нашего описания.
Таким образом, с помощью функционального программирования на языке Haskell, мы смогли элегантно и кратко описать сложную операцию, используя мощные функции композиции и стиль без указания точки.
Больше примеров в https://t.me/Koding404