簡體   English   中英

如何(<$>)保持關聯

[英]How can (<$>) be left associative

我只是注意到(<$>)有一個固定的infixl 4 怎么會這樣?

(+1) <$> (/5) <$> [5,10]顯然從左到右。

不, <$>是左關聯的,這在您的示例中沒有區別。 (+1) <$> (/5) <$> [5,10]讀作((+1) <$> (/5)) <$> [5,10] 這恰好起作用,因為(->) aFunctor實例基本上等同於函數組合; 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM