2015-02-07 8 views
4

제목은 거의 모든 것을 말합니다. 나는 이런 식으로 뭔가를 찾고 있어요 :Djinn을 사용하여 Emacs에서 Haskell 코드를 자동 생성하는 방법이 있습니까?

f :: Int -> Bool -> Int 
f = _body 

지니가 타입이 살고 있음을 증명함으로써 이러한 기능을위한 코드를 생성하는 증명 정리를 사용할 수 있습니다.

이맥스에서이 기능을 사용하기위한 기존 방법이 있습니까? 그래서 내 코드에 TemplateHaskell을 작성하는 대신, 내 코드에서 명령을 실행하고 생성 된 코드를 삽입합니까?

ghc-mod가 설치되어 있지만 그다지 익숙하지 않습니다.

+0

나는 답이 무엇인지 잘 모르겠다.하지만 꽤 유용하지는 않은가. 사실, Djinn이 유용하지 않을 가능성이있는 좋은 예가 코드예요 (64 비트 'int'크기의 경우에는 ((2^64)^2)^(2^64)'주민들이 내 수학을 올바르게한다면. 그것은 대부분 다형성 타입에 유용 할 것이지만 타입 클래스를 지원하지 않으며 잠시 후에 업데이트 된 것으로 생각하지 않습니다. –

+0

예, 제가 제시 한 예는 실용적이지 않고, 통사론적인 예일뿐입니다. – jmite

답변

2

Serras emacs guide의 관련 부분을 인용 :

이것은 좋은이지만, 경우에 따라서 GHC-모드 당신을 위해 더 많은 작업을 수행 할 수 있습니다 : 그것은 가 전체 표현을 쓸 수 있습니다! 그것은 Djinn의 힘을 이용함으로써 그렇게합니다. 예를 들어, 분할 후 maybeMap의 정의로 돌아가 보자

maybeMap 아무것도 F = _maybeMap_body

maybeMap (그냥 x)를 F = 당신이 구멍의 각 참조 칼슘을 누르면 _maybeMap_body

첫 번째 경우에는 Nothing, 두 번째 경우에는 Nothing 및 Just x를 포함하여 코드에 대한 몇 가지 옵션이 표시됩니다. 목록에서 포함 할 코드를 선택하면 이 자동으로 완성됩니다. 이 기능은 정확한 유형의 표현을 얻으므로 큐레이팅과 튜핑과 관련된 표현을 사용해야 할 때 매우 편리합니다 ( ).

그래, Djinn을 사용하면 일부 경우 전체 표현식을 쓸 수 있습니다. 개인적으로 사용하지는 않았지만 Emacs에서 가능할 것 같습니다.