В некоторых случаях работает только с этой командой, попробуйте.
npm run ng
Можно определить использование функции, 'позвольте':
$ ghci
Prelude> let double n = n + n
Prelude> double 42
84
Кроме того, я не вполне рекомендую это, так как (A) я записал это и (B) это ужасно не разработано, но Halp может быть удобным в Emacs - это немного похоже на электронную таблицу для кода Haskell, интегрированного прямо в Ваш буфер исходного кода. У Вас может быть ряд выражений, которыми Вы интересуетесь, и с одним нажатием клавиши видят, как все их значения изменяются в зависимости от Ваших редактирований начиная с последней переоценки.
Как Вы заметили, GHCi справедливо ограничен в том, что он может сделать,---короткие функции или выражения обо всем, что это легко в командной строке. Для остальных я загружаю модули. Одна из трудностей - то, что у Haskell нет определения перед использованием, таким образом, часто трудно вытащить значимый фрагмент из файла. Я обычно определяю маленькие модули и загрузить и перезагрузить их. Интерактивный опыт определенно не так хорош, как можно было бы понравиться.
Режим Haskell для Emacs обеспечивает функции для работы с intepreter. Таким образом, если Вы хотите выполнить некоторую функцию от модуля, который Вы редактируете, можно использовать C-c C-l, чтобы загрузить текущий модуль в ghci (или другой haskell интерактивный) и переключиться, чтобы буферизовать с интерактивным и выполнить некоторые команды там
ghci обеспечивает некоторый специальный синтаксис для того, чтобы сделать подобные вещи. Использовать let
для функциональных определений. Однако отмечено на FAQ GHC, что это может быть хитро с комплексными функциями, и обычно загружающийся из файла предпочтен. При использовании чего-то как Emacs, который допускает простую интеграцию между исходным файлом и процессом ghci, это становится надуманным вопросом, потому что можно загрузить определения в интерпретатор с нажатием клавиши.
С O'Caml и F#, определения проистекают из вершины файла вниз. Однако в Haskell, тип или функция, определяемая ранее в файле могут сослаться на тип или функционировать позже в том файле. Таким образом в Haskell, модуль должен быть скомпилирован внезапно. Интерактивный цикл является несовместимым с компиляцией внезапно.