import Control.Applicative

main = print $ fmap (*2) (1,2)

产生(1,4)。我希望它能产生(2,4),但是该功能仅应用于元组的第二个元素。

更新我基本上已经几乎马上就知道了。一分钟后,我会发布我自己的答案。

最佳答案

让我回答一个问题:您期望得到什么输出:

main = print $ fmap (*2) ("funny",2)

您可以根据需要设置某些内容(使用data Pair a = Pair a a左右),但是由于(,)的第一个和第二个参数可能具有不同的类型,因此您很不走运。

关于haskell - 为什么2元组Functor实例仅将函数应用于第二个元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13442544/

10-11 01:51