2017-02-18 11 views
4

一般的に使われているインポートが、それらを提供するパッケージが存在するときに自動的に行われるように、私のグローバルなGHCI設定を設定するといいと思っていました。 GHCI設定ファイルでCPPマクロを使用できますか?

私は ~/.ghc/ghci.confにこれを追加してみました:

:set -XCPP 

#ifdef MIN_VERSION_containers 
import   Data.Set (Set) 
import qualified Data.Set as Set 
import   Data.Map (Map) 
import qualified Data.Map as Map 
#endif 

をしかし、どうやらそれは動作しません。

> stack repl 
Configuring GHCi with the following packages: 
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help 

<interactive>:24:1: error: parse error on input ‘#’ 

<interactive>:29:1: error: parse error on input ‘#’ 

仕事にCPPマクロを取得する方法、または私が何をしようとしている達成するためにいくつかの他の方法はありますか?

+0

GHCiプロンプトで '#ifdef ...'と書いたように.ghciが動作していて、何もしていないと思います。 – chi

答えて

4

これらのマクロはGHCIで直接使用することはできませんが、GHCI's :add commandを使用してファイルに含めることができます。

> cat ~/.ghc/imports/imports.hs 
{-# LANGUAGE CPP #-} 

#ifdef MIN_VERSION_containers 
import   Data.Set (Set) 
import qualified Data.Set as Set 
import   Data.Map (Map) 
import qualified Data.Map as Map 
#endif 
  • ~/.ghc/imports/imports.hs

    > grep imports ~/.ghc/ghci.conf 
    :add /home/chris/.ghc/imports.hs 
    
    は私CPP'edの輸入が含まれています

    • ~/.ghc/ghci.conf:addコマンドが含まれています

      例えば

      が、これは私のセットアップは、今のように見えるものです

  • +0

    このソリューションの[Tim Humphries](https://twitter.com/thumphriees/status/832752388888883201)に感謝します。 –

    関連する問題