[英]How to make multiple eta reductions in Haskell
我有一个任务是从[[a]]
矩阵中获取一列。
一个简单的解决方案就是
colFields :: Int -> [[a]] -> [a]
colFields n c = map (!! n) c
当减少一个抽象级别时,它将会是
colFields n = map (!! n)
我觉得我可以轻易摆脱n
,但我不能这样做。
你在寻找什么
colFields = map . flip (!!)
但是,这不是很清楚,我会在那里留下n
参数。 使用n
作为显式参数,我立即理解该函数的作用。 没有它,我必须考虑一下才能理解定义,即使对于这样的简单情况也是如此。
我通过使用pointfree工具非常简单地获得了这个答案,尽管有方法可以手动推导出这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.