在介紹性的Haskell文本中,瞭解您對Haskell的好作,作者定義了一個函數applyTwice,兩次將函數f應用於參數x以說明更高階功能範式的核心功能。瞭解高階函數類型聲明
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
到目前爲止,我發現Haskell的類型聲明是清晰的,但是這個特殊的例子讓我感到困惑。我認爲這是一個更好理解類型聲明的機會。
作者指出這個構造「表示第一個參數是一個函數,它接受某些東西並返回相同的東西,第二個參數也是該類型的東西,返回值也是相同的類型。 (text)
這種類型聲明是什麼意思?爲什麼不使用(a - > a) - > a,每個 - >表示某種轉換?
?或者,等價地,傳遞一個函數,當給定一個'a'時將返回一個'a',並得到一個函數,當給定一個'a'時將返回一個'a'。 – user2407038