Jaki jest odpowiednik (+1) dla odejmowania, ponieważ (-1) jest postrzegane jako liczba ujemna? [duplikować]
Możliwy duplikat:
Currying subtraction
Rozpocząłem swój pierwszy projekt haskellowy, który nie pochodzi z samouczka i oczywiście natknąłem się na najprostsze rzeczy.
Mam następujący kod:
moveUp y = modifyMVar_ y $ return . (+1)
moveDn y = modifyMVar_ y $ return . (-1)
Zajęło mi trochę czasu, aby zrozumieć, dlaczego mój kod się nie kompiluje: użyłem (-1), który jest postrzegany jako negatywny. Nawiasowanie minusa nie pomaga, ponieważ poprzedza go i sprawia, że 1 jest pierwszym parametrem.
W skrócie, jaka jest ta darmowa wersja tego punktu?
dec :: Num a => a -> a
dec x = x - 1