[英]Generic function composition in Haskell
我在這里閱讀,我注意到,例如,如果我有以下函數定義:
a :: Integer->Integer->Integer
b :: Integer->Bool
以下表達式無效 :
(b . a) 2 3
組合的功能必須只有一個參數,這很奇怪。
這個限制是因為在Haskell中定義最通用的一個問題還是有其他原因?
我是Haskell的新手,所以我問的也許是無用的問題。
當你做a 2 3
,你不申請a
到2個參數。 你實際上是應用a
它唯一的參數,產生一個函數,然后把這個函數應用到3.所以你實際上做了2個應用程序。 所以從某種意義上說,你所擁有的並不等同於此:
a :: (Integer, Integer) -> Integer
b :: Integer -> Integer
(b . a) (2, 3)
你可以做到這一點,順便說一句
(b . a 2) 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.