[英]Haskell coding-style: map, fmap or <$>?
有沒有理由更喜歡以下其中一種符號而不是其他符號,或者這只是一個偏好問題?
map toLower "FOO"
fmap toLower "FOO"
toLower <$> "FOO"
`fmap`
且不說:我意識到<$>
和`fmap`
是一樣的。 我是否認為map
只是fmap
一般形式?
如你所說, map
是一種不那么通用的fmap
形式。 如果你知道你有一個列表,那么我會使用map
因為它使代碼更清晰,如果你犯了錯誤,錯誤信息可能不那么令人困惑。 但在很大程度上,這是一個偏好問題。
(<$>)
與fmap
相同。 在GHC 7.10之前它沒有被Prelude導出,因此默認情況下不可用 - 但即使使用較舊的GHC版本,也很容易從Data.Functor
或Control.Applicative
導入,而現在它幾乎是執行此操作的標准方法。
我同意Ganesh的說法, map
對於清單來說更清楚。 除了部分應用fmap
,我在fmap
使用<$>
。 所以我使用fmap reverse
來聲明一個函數來反轉某個函子的所有元素但是如果我有所有可用的參數(例如,如果我在do
塊中寫一行)我傾向於使用運算符形式: reverse <$> fx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.