为什么Haskell坚持删除函数的最后一个参数?

时间:2014-11-11 01:31:42

标签: haskell

这是相关代码:

removeCard :: Card -> Tracker -> Tracker
removeCard card tracker = filter (\cTracker -> ctCard cTracker /= card) tracker

Haskell在这里给了我一个警告,说它应该写在每一边没有跟踪器。当所有参数都存在时,我发现更容易阅读我的函数,因为参数名称有助于阐明函数的作用。我可以颠倒参数的顺序,但对我来说直观感觉如果你正在调用一个removeCard函数,要删除的卡是第一个参数,所以我也不想这样做。是否支持删除最后一个参数?

编辑:问题最初说Haskell给了我一个错误,但这是Syntastic的错误,这只是一个警告。

1 个答案:

答案 0 :(得分:12)

如果您不想要此HLint警告,则可以将其禁用。该模块不会为任何定义的函数显示它:

module Foo where
{-# ANN module "HLint: ignore Eta reduce" #-}

foo bar = show bar