我有一个任务是从[[a]]矩阵中获取一列.
一个简单的解决方案就是
colFields :: Int -> [[a]] -> [a]
colFields n c = map (!! n) c
当减少一个抽象级别时,它将是
colFields n = map (!! n)
我觉得我可以n轻易摆脱,但我做不到.
bhe*_*ilr 13
你在寻找什么
colFields = map . flip (!!)
但是,这不是很清楚,我会把n参数留在那里.使用n作为显式参数,我立即理解该函数的作用.没有它,我必须考虑一下才能理解定义,即使对于这样的简单情况也是如此.
我通过使用pointfree工具非常简单地获得了这个答案,尽管有方法可以手动推导出这个.