Никаких сомнений насчет этого. Я просто чувствовал, что явное каррирование (и явные замыкания) может помочь понять концепции немного лучше

нь новичок в Haskell и FP в целом. Я прочитал много работ, в которых описывается, что такое карри, но я не нашел объяснения тому, как это на самом деле работает.

Вот функция:(+) :: a -> (a -> a) Если я сделаю(+) 4 7, функция принимает4 и возвращает функцию, которая принимает7 и возвращается11, Но что происходит с4 ? Что эта первая функция делает с4? Что значит(a -> a) делать с7?

Все становится более запутанным, когда я думаю о более сложной функции:

max' :: Int -> (Int -> Int)
max' m n | m > n = m
         | otherwise = n

что значит(Int -> Int) сравнить его параметр с? Требуется только один параметр, но для этого нужно дваm > n.

Ответы на вопрос(5)

Ваш ответ на вопрос