negate (-) - の違いは・・・?

nagate は Num 型の引数をひとつとり符号を反転させて返す関数。

> :t negate
negate :: (Num a) => a -> a

> :i negate
class (Eq a, Show a) => Num a where
  ...
  negate :: a -> a
  ...
  	-- Defined in GHC.Num

> negate 1                   --=> -1
> negate $ negate 1          --=>  1
> negate $ negate $ negate 1 --=> -1

(-) は最初の引数から二番目の引数を引いた値を返す関数

> :t (-)
(-) :: (Num a) => a -> a -> a

> :i  -
class (Eq a, Show a) => Num a where
  ...
  (-) :: a -> a -> a
  ...
  	-- Defined in GHC.Num
infixl 6 -

> (-) 10 5  --=> 5
> (-) 10 20 --=> -10
> 10 - 20   --=> -10

- は符号反転に使えないかというと・・・使える。

> -1         --=> -1
> -(1)       --=> -1
> -(-(1))    --=>  1
> -(-(-(1))) --=> -1
- を二つ以上連続させると・・・コメントだから何も出力されないですよw
> --1
> ---1
> ----1

やさしい Haskell 入門 / 10 数