3
A
回答
6
(@ x)
任何操作者@
相當於\a -> a @ x
;因此($ 3)
相當於\f -> f $ 3
,即應用將它傳遞給3
的任何函數的函數。這個語法被稱爲「章節」。
> let f = ($ 3)
> f show
"3"
> f square
9
8
($ 3)
是一節,並且等同於\f -> f 3
,這需要一個函數參數,並將其應用於3.
如果我們考慮3
爲整數,我們將具有的f
類型是Int -> b
(對於任何b
),因此($ 3)
的類型將是(Int -> b) -> b
。
事情在Haskell是更復雜一點,因爲3
可以是任意數字類型的,所以我們並不真正需要f :: Int -> b
,這是不夠的,如果f :: a -> b
其中a
是數值型。因此我們得到($ 3) :: Num a => (a -> b) -> b
。
3
另一種方式來看待它是
($) :: (a -> b) -> a -> b
3 :: Num a => a
,當你在($)
「附件3」,它將成爲
($ 3) :: Num a => (a -> b) -> b.
給您不再需要提供到期,但是您需要提供的函數現在僅限於num,因爲3可以是任何數字類型。
這至少是我如何看待Haskell中的函數,就像代數中的替換一樣。
相關問題
- 1. 試圖瞭解Haskell中的函數應用程序運算符
- 2. Haskell美元運算符應用程序
- 3. 如何使用$運算符在Haskell中實現函數應用程序?
- 4. CoffeeScript中的Haskell's $(函數應用程序運算符)?
- 5. Haskell:映射函數應用程序
- 6. Haskell:=運算符?
- 7. java編程:Android應用程序中的邏輯運算符和函數
- 8. 使用&運算符的PHP函數
- 9. 在C++中調用+ =運算符函數中的運算符+函數
- 10. 使用運算符作爲序言中的構造函數
- 11. Haskell函數應用
- 12. 函數調用中的新運算符
- 13. 爲什麼選擇函數應用程序作爲默認的Haskell運算符,而不是組合?
- 14. Haskell點運算符
- 15. Haskell中的字符算術運算
- 16. 爲什麼不應該在函數中使用「=」R運算符?
- 17. 預定義的Haskell運算符用於在Applicative中應用純數值?
- 18. 在x86程序集的數組中使用OFFSET運算符?
- 19. 使用'x'運算符計算數字乘積的函數?
- 20. 運算符使用中的haskell語法錯誤
- 21. &運算符在Python中用於程序
- 22. 使用有限的一組算術運算符的Ceil函數
- 23. 應該使用哪個「<<」運算符函數?
- 24. 如何在emacs-haskell模式下運行haskell應用程序?
- 25. 是否存在Haskell $運算符的逆函數?
- 26. 部分函數在Haskell中的應用
- 27. Haskell中的運算符優先級
- 28. haskell中的自定義concat(++)運算符
- 29. Haskell中的樹相等運算符
- 30. 在函數的返回值上使用運算符時,運算符重載函數不起作用