Como funciona o curry?
Sou muito novo em Haskell e FP em geral. Eu li muitos dos escritos que descrevem o que é o curry, mas não encontrei uma explicação de como ele realmente funcion
Aqui está uma função:(+) :: a -> (a -> a)
Se eu fizer(+) 4 7
, a função leva4
e retorna uma função que leva7
e retorna11
. Mas o que acontece com4
? O que essa primeira função faz com4
? O que(a -> a)
faça com7
?
s coisas ficam mais confusas quando penso em uma função mais complicad
max' :: Int -> (Int -> Int)
max' m n | m > n = m
| otherwise = n
o que(Int -> Int)
compare seu parâmetro com? Leva apenas um parâmetro, mas precisa de dois para fazerm > n
.