4
爲$
類型簽名如下:
($) :: (a -> b) -> a -> b
因此,如果plus1 n = n + 1
,那麼我們有
> ($) plus1 1
2
但後來那爲什麼
> ($ 1) plus1
2
呢?形式($ 1) plus1
似乎違反$
的類型簽名。
爲$
類型簽名如下:
($) :: (a -> b) -> a -> b
因此,如果plus1 n = n + 1
,那麼我們有
> ($) plus1 1
2
但後來那爲什麼
> ($ 1) plus1
2
呢?形式($ 1) plus1
似乎違反$
的類型簽名。
如果您嘗試
(($) 1) plus1
你會得到你所期望的類型的錯誤。
特殊語法($ 1)
被稱爲部分,並且代表\x -> x $ 1
,它與普通應用程序($) 1
不同。該語法可以與所有中綴運算符(*)一起使用,例如(+ 1)
或(* 4)
。
(*)除-
之外,因爲(- 10)
是負常數-10
。
您正在考慮'(1 $)plus1' ...... – Bakuriu