Tik*_*vis 13 lambda warnings haskell ghc
我是否可以仅为lambdas禁用非详尽模式匹配警告?
我喜欢一般的警告,但不是像这样的实际lambda文字:
map (\(x:xs)->...) ls
Run Code Online (Sandbox Code Playgroud)
我认为这段代码很清楚我希望所有的值ls
总是至少有一个元素,并且没有简洁的方法来处理lambda中的错误情况.(我想我可以将模式匹配移动到一个case
声明中,但那只会很难看.)
ehi*_*ird 15
是的,但仅限于GHC 7.2以后; 传递-fno-warn-incomplete-uni-patterns
(例如在您的Cabal文件的ghc-options
字段中,或在{-# OPTIONS_GHC #-}
文件顶部的编译指示中).
但是,这也会禁用模式绑定的警告,因此let Just x = Nothing in x
不会产生警告.case
陈述不受影响.
你经常遇到这种情况吗?这是代码味道恕我直言.我想看看一些这样的lambdas,我很确定我们可以制作一个更好的版本,也可以很好地处理空列表.在所有其他情况下,您可能会使用NonEmpty
列表类型包装器.