Я начал учить себя Haskell, и для этого я установил Платформа Haskell для Windows. Я использую WinGHCi
на данный момент. Я узнал, что у него есть команда :cd
, которая используется для изменения каталога. Но вопрос в том, как узнать, в какой директории я сейчас? Не зная сначала, зачем мне менять каталог. Я много искал, но не смог найти ответ.
Скажите, пожалуйста, есть ли способ узнать текущий рабочий каталог. Предпочтительно, я хотел бы сам настроить командную строку, чтобы показать текущий каталог, в значительной степени похожий на Linux Console.
Следуя предложению @Daniel, я сделал следующее:
- Поскольку я работал в Windows 7, нет файла
.ghci
(я думаю, что это для Unix-подобной ОС), поэтому я создал файлghci.conf
в папкеC:\Users\Apelles\AppData\Roaming\ghc
, так как он указан здесь. - Скопируйте script из ответа Daniel на
ghci.conf
. - Затем я начал
ghci.exe
, который является консольным окном. Я заметил, что он загрузил несколько модулей, чем обычно используется для загрузки ранее. Вот снимок:
Как вы можете видеть, он загружает больше модулей, а в последней строке -
Невозможно разобрать строку подсказки. Используйте синтаксис Haskell.
Что это значит? Какая строка вызывает проблему (из следующего script)?
let cur fill = do { cwd <- System.Directory.getCurrentDirectory; return (":set prompt \"" ++ cwd ++ fill ++ " \""); }
:def doprompt (\_ -> cur ">")
:def mycd (\dir -> System.Directory.setCurrentDirectory dir >> cur ">")
:doprompt
Кроме того, если я переименую файл ghci.conf
на какое-то случайное имя, а затем запустив ghci.exe
, он загрузит эти модули:
Как я уже говорил, он загружает меньшее количество модулей, что означает, что с ghci.conf, ghci.exe
делает что-то успешно, но сбой в какой-то момент. Как это исправить?