2013-02-25 109 views
1

假設的Haskell或演算呈現以下功能類型:哈斯克爾/演算類型例如

A - >乙 - 「ç

(A - > B) - 」ç

這兩個不同?

+0

第一個等價於A→B→C。這是你的問題嗎? – 2013-02-25 04:43:37

回答

0

這裏是你的類型的兩個示例的功能,這將幫助你找出如何將這些不同:

valatzero :: Num a => (a -> t) -> t 
valatzero f = f 0 

plus :: Num a => a -> a -> a 
plus x y = x + y 
3

首先是從A的(從BC功能)的功能。第二個是從(功能從AB)到C的函數。第一個「有兩個參數」第二個「有一個參數」。第一個是正常功能,第二個是「高階功能」。

+0

這兩個都是高階函數。 – us2012 2013-02-25 04:57:53

+0

技術上來說,他們也都採取單一的論點。也許我應該引用「高階函數」。 – 2013-02-25 05:00:21

+0

是的,公平的:)。人們在不同的情況下采用「高階函數」來表示不同的事物。 – us2012 2013-02-25 05:02:05