这是相关代码:
removeCard :: Card -> Tracker -> Tracker
removeCard card tracker = filter (\cTracker -> ctCard cTracker /= card) tracker
Run Code Online (Sandbox Code Playgroud)
哈斯克尔在这里给我一个警告,说它应该写在每一边没有跟踪器.当所有参数都存在时,我发现更容易阅读我的函数,因为参数名称有助于阐明函数的作用.我可以颠倒参数的顺序,但对我来说直观感觉如果你正在调用一个removeCard函数,要删除的卡是第一个参数,所以我也不想这样做.有没有强烈的论据支持删除最后一个参数?
编辑:问题最初说Haskell给了我一个错误,但这是一个Syntastic的错误,它只是一个警告.
tha*_*guy 12
如果您不想要此HLint警告,则可以禁用它.该模块不会为任何定义的函数显示它:
module Foo where
{-# ANN module "HLint: ignore Eta reduce" #-}
foo bar = show bar
Run Code Online (Sandbox Code Playgroud)