Подтвердить что ты не робот

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

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

Кроме того, после их импорта, как мне заставить запрос быть безумно длинным?

Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>
4b9b3361

Ответ 1

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

Ответ 2

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

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

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

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