我发现自己经常写代码如下格局:如何让函数[a] - > [a]在[(a,Int)]上运行?
foo xs = map snd $ filter ((< 10).fst) $ zip xs [0..]
bar ys = map snd $ sortBy (compare `on` fst) $ zip ys [0..]
现在我想摘要远
foo = indexesOf (filter (<10))
bar = indexesOf sort
indexesOf :: ([a] -> [a]) -> [a] -> [Int]
indexesOf f xs = map snd $ magick $ zip xs [0..] where
magick = undefined
如何执行magick
?
...我真的不清楚是什么你正在努力去做。 – 2012-02-17 08:25:06
我有一个函数在列表上工作,比如'sort'。现在,而不是排序的列表,我想获取元素的*索引*。例如。对于'[5.0,8.0,7.0]'我不想'[5.0。 7.0,8.0]',但是[0,2,1]'。 – Landei 2012-02-17 08:38:33