标签: hlint

Haskell:如何告诉hlint不要:`警告:使用字符串文字`

我有一个单元测试文件:

module X04PatMatTest where

import AssertError
import Test.HUnit
import X04PatMat

...
Run Code Online (Sandbox Code Playgroud)

和hlint抱怨:

X04PatMatTest.hs:15:69: Warning: Use string literal 
Found:
  ['a', 'b', 'd']
Why not:
  "abd"
Run Code Online (Sandbox Code Playgroud)

由于各种原因,我真的想要['a', 'b', 'd']输入测试代码.

我尝试了各种各样的permuatations

{-# ANN X04PatMatTest "HLint: ignore Warning: Use string literal" #-}
Run Code Online (Sandbox Code Playgroud)

比如将pragma作为文件的第一行,在模块声明之后,用名称module代替X04...,将... 更改Warningwarn...

什么是魔术?

haskell hlint

15
推荐指数
2
解决办法
1930
查看次数

Leksah是否有hlint,hoogle集成?

leksah是否支持任何类型的插件?会吗?它是否内置了任何插件,如hlint,hoogle,pl,djinn?如果没有,是否有一种简单的方法来整合这些东西?

plugins haskell leksah hlint

13
推荐指数
1
解决办法
1139
查看次数

在HLint的上下文中,eta减少了什么意思

我正在看教程http://haskell.org/haskellwiki/How_to_write_a_Haskell_program

import System.Environment

main :: IO ()
main = getArgs >>= print . haqify . head

haqify s = "Haq! " ++ s
Run Code Online (Sandbox Code Playgroud)

在HLint下运行此程序时,它会出现以下错误;

./Haq.hs:11:1: Warning: Eta reduce
Found:
  haqify s = "Haq! " ++ s
Why not:
  haqify = ("Haq! " ++ )
Run Code Online (Sandbox Code Playgroud)

有人能否对"Eta Reduce"在这种背景下意味着什么有所了解?

haskell lambda-calculus hlint

11
推荐指数
3
解决办法
3955
查看次数

创建单例列表的两个函数之间的差异

当运行在我的程序hlint它报告了一个错误

\x -> [x]
Run Code Online (Sandbox Code Playgroud)

并提出了替代形式

(: [])
Run Code Online (Sandbox Code Playgroud)

根据hlint关于第一种形式有什么错误,因此为什么我应该使用(不太可读)第二种选择?

编辑

(明确地向问题添加了hlint)

在词汇的观点上,我的问题不在于差异是什么(我确实理解它们两者).我的问题是我不明白为什么hlint将其标记为错误.有没有例如懒惰的差异?此外,为什么先前认为hlint的错误只会\x -> Just x引发警告.

haskell hlint

10
推荐指数
3
解决办法
814
查看次数

在emacs上使用Hlint和intero

我无法使用intero获得在emacs中出现的hlint建议.

  • 我有一个新的emacs 24.5安装
  • 我把这里的intero东西添加到新~/.emacs文件中
  • 我没有为emacs做任何其他事情.

我读过解决方案是:

(flycheck-add-next-checker 'intero
                           '(warning . haskell-hlint))
Run Code Online (Sandbox Code Playgroud)

但我不知道我应该怎么做.如果我将其添加到我的~/.emacs文件中,则emacs会在启动时失败.

(其余的似乎没问题 - 当我打开一个Haskell文件时,intero会启动 - 错误会在我输入时立即被标记.)

如何获得Hlint建议?

emacs haskell hlint intero

10
推荐指数
1
解决办法
1225
查看次数

是否有与Erlang相同的HLint?

HLint是一个Haskell lint工具,用于使代码更加惯用.Erlang有类似的东西吗?

debugging erlang haskell lint hlint

9
推荐指数
1
解决办法
1113
查看次数

如果由于多方式使HLint忽略解析错误?

我正在使用MultiWayIf语言扩展.虽然我喜欢HLint(我使用的是版本v1.8.61),但遗憾的是HLint似乎并不知道这个扩展,并且它将多路ifs报告为解析错误: Warning: Parse error: |

HLint手册(http://community.haskell.org/~ndm/darcs/hlint/hlint.htm)描述了如何使用编译指示来指出要忽略的建议; 但是,由于解析错误,这似乎不适用于警告.

有没有办法告诉HLint忽略解析错误警告?谢谢!

haskell hlint

8
推荐指数
1
解决办法
421
查看次数

HLint:使用&&&建议建议

我在一个小项目上运行了HLint,它建议我使用&&&.

示例:

>>> cat st.hs
f = (+) 10
g = (+) 1

main = print $ (\x -> (f x, g x)) 5
>>> hlint st.hs
st.hs:4:17: Warning: Use &&&
Found:
  \ x -> (f x, g x)
Why not:
  f Control.Arrow.&&& g

1 suggestion
Run Code Online (Sandbox Code Playgroud)

我理解这\x -> (f x, g x)是一种模式,并欣赏这个建议.但是Control.Arrow.&&&没有正常的功能而是箭头,所以我不能&&&按照建议使用.

那么在那种情况下推荐的方式是什么?

  • &&&在函数上定义我自己的运算符?
  • 使用箭头并做一些类似(arr f) &&& (arr g)但我甚至不知道如何评估它?
  • 在那个特殊的场合忽略Hlint.

haskell arrows hlint

7
推荐指数
1
解决办法
430
查看次数

是否有命令在emacs中应用hlint建议?

当我编写Haskell代码时,我在emacs中使用flycheck和haskell-hlint,我认为如果我可以通过调用一些emacs程序而不是手动修改代码来应用这些hlint建议会很棒.

如果没有可用的,以防我必须为自己编写此程序:

是否保证hlint输出始终为以下形式:

Found:
  {Text1}
Why not:
  {Text2}
Run Code Online (Sandbox Code Playgroud)

哪里{Text?}可以始终解析为Haskell抽象语法树?

emacs haskell hlint flycheck

7
推荐指数
1
解决办法
787
查看次数

堆栈安装ghc-mod失败,OSX 10.13.4上存在依赖冲突

当我尝试通过堆栈安装ghc-mod时,我最终会遇到这些依赖性冲突

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for ghc-mod-5.8.0.0:
    Cabal-2.0.1.1 from stack configuration does not match >=1.18 && <1.25  (latest matching version is 1.24.2.0)
    base-4.10.1.0 from stack configuration does not match >=4.6.0.1 && <4.10  (latest matching version is 4.9.1.0)
    cabal-helper must match <0.8 && >=0.7.3.0, but the stack configuration has no specified version  (latest matching version is 0.7.3.0)
    extra-1.6.8 from stack configuration does not match <1.6 && >=1.4  (latest matching version is …
Run Code Online (Sandbox Code Playgroud)

haskell hlint ghc-mod haskell-stack

7
推荐指数
1
解决办法
1308
查看次数