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/