2013-05-04 10 views
10

문자열로 주어진 하스켈 식의 형식에 대한 표현을 얻기 위해서는 (빠르고 더러운) 방법이 필요합니다. 그러나, 문서 꽤 빨리 저를 잃는다 -하스켈식이 포함 된 문자열의 유추 유형

  • 사용 GHC의 API :

    나는 현재 3 옵션을 참조하십시오.

  • 다른 유형의 유추 도구를 사용하십시오 - haskell-type-exts를 사용해 보도록 제안되었지만 가장 간단한 표현을 제외한 모든 유 형을 입력하는 데 실패했습니다. 나는 그런 도구에 대해 모른다. 내 자신의 HM의 inferer는
  • 롤 - 내가하지 않는 한이를 방지 것 절대적으로 필요

심지어 의미에서 완전한 솔루션을 필요로하지 않는 합리적인 기본 하위 집합을 입력 할 수있는 라이브러리/도구 하스켈은 나를 위해 충분할 것입니다.

그래서 이것을 달성하는 가장 간단한 방법은 무엇입니까?

+0

는 [다른 하스켈 구현 (에서보세요 인쇄 : 여기

는 예제 프로그램입니다) - 일부는 GHC보다 사용이 더 간단 할 수 있습니다. –

+2

자신 만의 글을 쓰면 Mark P. Jones의 [THIH] (http://web.cecs.pdx.edu/~mpj/thih/)가 좋은 시작일 수 있습니다. –

답변

17

hint package은 GHC API에 다소 제한적이지만 더 이해하기 쉬운 인터페이스를 제공합니다. 아마도 그것은 당신의 목적을 위해 충분할 것입니까? 그렇지 않다면 소스를보고 GHC API를 직접 사용하는 방법을 더 잘 이해할 수 있습니다. http://www.haskell.org/haskellwiki/Implementations

실행하면
import Language.Haskell.Interpreter 

main :: IO() 
main = do 
    r <- runInterpreter $ do 
    setImports ["Prelude"] 
    typeOf "map (+1)" 
    either print putStrLn r 

,이

Num b => [b] -> [b] 
+0

이것은 굉장한 물건입니다, 고마워요! – xcvii