我的任务是从 [[a]]
矩阵中获取一列。
一个简单的解决方案是
colFields :: Int -> [[a]] -> [a]
colFields n c = map (!! n) c
当减少一级抽象时,它会是
colFields n = map (!! n)
我感觉我可以轻松摆脱n
,但我做不到。
最佳答案
您要找的是
colFields = map . flip (!!)
但是,这读起来不太清楚,我将 n
参数保留在那里。使用 n 作为显式参数,我立即明白该函数的作用。如果没有它,即使对于像这样的简单情况,我也必须思考一分钟才能理解其定义。
我通过使用 pointfree 非常简单地获得了这个答案工具,尽管有一些方法可以手动导出它。
关于haskell - 如何在 Haskell 中进行多次 eta 缩减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26538438/