2016-09-05 3 views
2

라이브러리가있어서 실행 파일을 내가 cabal repl, 즉 내가 하스켈 표현식을 사용하고 모듈을 가져오고 내 데이터 유형을 정의 할 수 있기를 바랄 때 얻을 수 있기를 바란다. 도서관.컴파일 된 코드를 힌트로로드 할 수 있습니까?

가능합니까? hint은 소스 파일 (사용자가 사용할 수 없음)에서만 작동 할 수 있다고 생각하지만 확실하지 않습니다. 라이브러리 또는 글로벌하게 설치된 cabal 패키지에서 모듈을로드하려고 시도했을 때 모듈이 패키지 모듈이라고 말하는 모호한 오류 메시지가 나타납니다. 사실, 내가 쓰는 거의 무엇이든 그렇게 할 것입니다.

ghci> runInterpreter $ loadModules ["Not.A.Package.Module"] 
Left (WontCompile [GhcError {errMsg = "<no location info>: error:\n module \8216Not.A.Package.Module\8217 is a package module"}]) 

어떤 방법이 있습니까? (추신 : 나는 GHC 8.0.1을 사용하고 있고 plugins은 지원하지 않으며, 또한 매우 죽은 프로젝트라는 생각이 들었다. 다른 방법이 있지만 hint & plugins 나는 그것에 열려있다.

+0

자체가 이러한 모듈을 가져 ghci 수 있습니까? –

답변

0

프로젝트를 스택으로 만들고 Hackage에 의존하는 코드를 넣을 수 있습니다.

프로젝트에서 *.cabal 파일의 build-depends 섹션에 해당 패키지를 추가하십시오. 그런 다음 hint에서 setImportsQ을 사용하여 필요한 항목을 가져옵니다. 당신의 평가 함수에

build-depends:  base 
        ... 
        , Chart 
        , Chart-diagrams 

그리고 다음을 :

예는 ChartChart-diagrams에 따라 될 수

setImportsQ[ ("Prelude",Nothing) 
      , ("Graphics.Rendering.Chart.Easy", Nothing) 
      , ("Graphics.Rendering.Chart.Backend.Diagrams", Nothing) 
      ] 
관련 문제