[英]How can (<$>) be left associative
我只是注意到(<$>)
有一個固定的infixl 4
。 怎么會這樣?
(+1) <$> (/5) <$> [5,10]
顯然從左到右。
不, <$>
是左關聯的,這在您的示例中沒有區別。 (+1) <$> (/5) <$> [5,10]
讀作((+1) <$> (/5)) <$> [5,10]
。 這恰好起作用,因為(->) a
的Functor
實例基本上等同於函數組合; fmap (+1) (/5)
相當於\\x -> (x/5)+1
,在這種情況下,它給出的結果與您認為可以使用的順序相同,即(+1) <$> ((+5) <$> [5,10])
。
因為這有點令人困惑,如果你想連續應用多個函數,那么在這里使用普通函數組合運算符的可讀性可能更好: (+1) . (/5) <$> [5,10]
(+1) . (/5) <$> [5,10]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.