Как скомпилировать и запустить haskell на notepad++
как вы компилируете и запускаете Haskell в notepad++
Я установил плагин NppExec, а затем нажал F6
Я сохранил файл Haskell в C:UsersSamDesktophaskell filesnew 3.hs
Итак, по команде после нажатия F6 Я попытался ввести несколько разных вещей:
C:UsersSamDesktophaskell filesnew 3.hs`
ghc.exe new 3.hs
haskell new
но я получил эти ответы:
C:UsersSamDesktophaskell filesnew 3.hs
CreateProcess() failed with error code 2:
The system cannot find the file specified.
ghc.exe new 3.hs
Process started >>>
target `new' is not a module name or a source file
<<< Process finished.
haskell new 3
CreateProcess() failed with error code 2:
The system cannot find the file specified.
================ READY ================
каков правильный способ компиляции и выполнения в файле haskell на notepad++?
2 ответов
вам нужно установить NppExec для работы в текущем каталоге, поэтому в плагинах, NppExec, отметьте Follow $(CURRENT_DIRECTORY)
.
используйте команду ghc new3.hs
при нажатии клавиши F6 (без пробелов в именах файлов).
если вы используете Haskell со стеком, я нашел прекрасный способ быстро запускать вещи с помощью NppExec. Это более простой процесс, чем кажется, и как только вы это сделаете, вам хорошо идти:
Предположим, у вас есть такой файл в файл под названием yourFileName.hs
:
main :: IO ()
main = putStrLn "Hello world!"
нажмите F6, чтобы начать NppExec. (См. Примечание 1 ниже.)
вставьте нижнюю часть в окно.
cd "$(FULL_CURRENT_PATH)"
stack ghci
// This is a comment you can delete. Note 2 below.
(См. Примечание 3 под.)
при нажатии кнопки OK консоль Notepad++ запустит интерпретатор Haskell.
теперь снова нажмите F6. Появится меню предупреждения.
-
введите в меню:
:cmd return $ unlines [":l yourFileName", ":main"]
и нажмите ENTER. Файл будет выполнен. Нажатие F6 + ENTER загрузит и снова запустит файл. Когда вы откроете Notepad++ в следующий раз, это все равно будет там. Всякий раз, когда вы хотите работать с новым файлом, у вас будет изменитьyourFileName
конечно.объяснение:
:cmd return " . . . "
позволяет выполнять строку в виде нескольких команд ghci, разделенных\n
.unlines
берет список строк и присоединяется к ним с\n
. Если вы не знаете о$
, вы узнаете его, как только он станет частью basic Haskell.если у вас нет основной функции в вашем файле, вместо этого используйте
:cmd return $ unlines [":l yourFileName"]
.
Примечание 1: Для удобства, я использовал Settings > ShortCutMapper > Plugin Commands
to измените Execute с F6 на F1.
примечание 2: Если вы запускаете несколько языков таким образом (например, Lisp?), то вы можете заменить // This is a comment...
строку с // :cmd return $ unlines [":l yourFileName", ":main"]
так что у вас есть это на потом, когда вы переключитесь обратно на Haskell.
Примечание 3: вместо вставки cd "$(FULL_CURRENT_PATH)" stack ghci
в окне NppExec гораздо проще сделать все это, чтобы вставить stack runghc "$(FULL_CURRENT_PATH)"
и больше ничего не нужно делать. Однако я обнаружил, что консоль занимает намного больше времени для загрузки и запуска файла в этом случае, поэтому метод, который я использую.