Как настроить GHCi для автоматического импорта модулей

Когда я использую GHCi, я почти всегда заканчиваю тем, что импортировал Control.Applicative , Data.List и т. Д. Есть ли способ настроить GHCi для автоматического импорта этих модулей.

Кроме того, как после того, как я импортирую их, как сохранить приглашение не слишком длинным?

Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>
37
задан casperOne 5 April 2012 в 18:50
поделиться

2 ответа

GHCi ищет свой файл конфигурации в

  • ~ /.ghc / ghci.conf в Unix-подобных системах.

  • % APPDATA% \ ghc \ ghci.conf в Windows.

Синтаксис файла конфигурации прост: это список команд GHCi, выполняемых при запуске.

Например, ваш ghci.conf может содержать:

import Control.Applicative
import Data.Char
import Data.List

:set prompt "> "

Последняя строка устанавливает запрос на ">" , поэтому не будут отображаться все модули, которые вы импортировали в командная строка.

Теперь вы можете сразу приступить к работе:

GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
> toLower <$> "Hello, world!"
"hello, world!"
> 

Кроме того, если вы решите, что не хотите Data.Char в середине сеанса GHCi, вы можете удалить его с помощью:

:m -Data.Char

и если вы решите, что вам не нужно ничего, кроме Prelude во время сеанса:

:m
48
ответ дан 27 November 2019 в 04:38
поделиться

GHC также загрузит любой файл .ghci , который он найдет в текущем каталоге. Очень полезно выполнять настройку GHCi для каждого проекта.

Это пример из проекта, над которым я работаю:

:set -isrc:dist/build/autogen
:set -hide-package mtl

Во-первых, необходимо убедиться, что модули, созданные Кабалом, легко импортировать. Второй скрывает mtl , поскольку в этом конкретном проекте используются трансформаторы .

21
ответ дан 27 November 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: