簡體   English   中英

Haskell中的通用函數組合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM