2014-11-27 9 views
2

Я всего лишь несколько недель занимаюсь программированием с помощью Haskell. Мне сказали использовать HLint для улучшения моего кода. Проблема в том, что я не могу понять, как запустить HLint против моего .hs-файла. Я прочитал the documentation, и я смог установить его с помощью cabal install hlint. Следующий шаг - запуск HLint с использованием hlint myfile.hs. Я не могу понять, где ввести эту строку. Ни cmd, ни ghci не позволят мне запустить команду. Что мне здесь не хватает?Как запустить HLint?

Я использую окна.

редактировать:

я только удалил Haskell и установил его снова в моей системе. Я думаю, проблема связана с моей установкой Haskell. То, что я получаю, когда я пытаюсь установить снова HLint: enter image description here

Файл делает exsist в C:\Users\PCPCPCCP\AppData\Roaming\cabal\setup-exe-cache

EDIT2:

Похоже hlint не был установлен правильно. Даже после переустановки платформы haskell я не могу установить hlint в моей системе. Я работал на моей виртуальной машине однако ...

+0

Похоже, что у вас есть проблема с установкой пакетов в целом, а не с HLint, в частности, поэтому я предлагаю вам начать с самого простого исполняемого файла и получить эту работу в первую очередь. В частности, я предлагаю вам установить пакет [hello] (http://hackage.haskell.org/package/hello) (что невероятно просто) и посмотреть, работает ли это. –

ответ

3

Просто запустите его на верхней части файла Haskell:

$ hlint filename.hs 

Вы должны бежать, что из терминала в Linux или Power Shell (cmd.exe) в Windows.

Образец демо с моего компьютера:

sibi::rlinux { ~ }-> hlint gem.hs 
gem.hs:9:9: Warning: Use void 
Found: 
    print "if" >> return() 
Why not: 
    void (print "if") 

gem.hs:10:9: Warning: Use void 
Found: 
    print "else" >> return() 
Why not: 
    void (print "else") 

2 suggestions 
+0

Я все еще не понимаю. Поэтому у меня есть файл с именем t.hs с моей программой haskell. Я могу открыть CMD и запустить эту программу без проблем. Теперь вы хотите, чтобы я добавил строку '$ hlint t.hs' поверх моего t.hs-файла, а затем запустился из CMD, как раньше? Я получаю ** ошибку разбора на входе '$' Возможно, вы намеревались использовать TemplateHaskell ** – isADon

+0

@isADon: В окне CMD введите 'hlint t.hs'. Знак доллара просто предназначен для представления командной строки, вы на самом деле не вводите его нигде. Выдает ли ошибка, если попытаетесь это сделать? –

+0

да, я получаю ** команда «hlint» написана неправильно или не может быть найден ** (перевод с немецкого) – isADon

1

Я просто запустить его как этот

hlint src/ 

где "SRC /" это каталог определяется в HS-источника-директорий: строка мой .cabal файл.