[英]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.