List Haskell中的元组函数
我有这个功能List Haskell中的元组函数,list,haskell,tuples,higher-order-functions,List,Haskell,Tuples,Higher Order Functions,我有这个功能 getCode :: [(a, Int)] -> [a] getCode = concatMap (uncurry replicate)` 我想 getCode [(‘a’,4),(‘b’,1),(‘a’,3),(‘b’,1)] 输出 “aaaabaaab” 相反,我得到一个错误,它与预期的数据类型[(a,Int)]不匹配,而实际的数据类型是[(Int,a)]。我如何改变它使其工作?或任何其他方式?您可以使用以下功能交换replicate的参数: flip f以与f相
getCode :: [(a, Int)] -> [a]
getCode = concatMap (uncurry replicate)`
我想
getCode [(‘a’,4),(‘b’,1),(‘a’,3),(‘b’,1)]
输出
“aaaabaaab”
相反,我得到一个错误,它与预期的数据类型
[(a,Int)]
不匹配,而实际的数据类型是[(Int,a)]
。我如何改变它使其工作?或任何其他方式?您可以使用以下功能交换replicate
的参数:
flip f
以与f
相反的顺序获取其(前)两个参数
或者使用from
Data.Tuple
对元组而不是函数参数执行相同的操作:
getCode :: [(a, Int)] -> [a]
getCode = concatMap (uncurry replicate . swap)
谢谢你的帮助。我在想
reverse
函数。@BCKNreverse
用于列表,但swap
用于元组。谢谢你的记忆慢跑;)
getCode :: [(a, Int)] -> [a]
getCode = concatMap (uncurry (flip replicate))
getCode :: [(a, Int)] -> [a]
getCode = concatMap (uncurry replicate . swap)