2011-09-11 2 views
4

ghci의 -XNoImplicitPrelude 플래그에 대한 이해가 잘못되었으며 매우 혼란 스럽습니다.NoImplicitPrelude를 사용하여 숫자 리터럴의 구문을 다시 바인딩

documentation

정수 리터럴 (368 개) 수단이 아니라 "(368 : 정수) Prelude.fromInteger"이 아닌 "fromInteger (368 : 정수)"라고 말한다.

그러나, 나는이 코드를로드 할 때 :

*Try> 4 
Nummy 4.0 
*Try> 

를 닮아을 :

~/tmp$ ghci -XNoImplicitPrelude try.hs 
[1 of 1] Compiling Try    (try.hs, interpreted) 
Ok, modules loaded: Try. 
*Try> 4 
4 

내가 얻을 것으로 예상하는 경우 : ghci 속으로

{-# LANGUAGE NoImplicitPrelude #-} 
module Try where 
import Prelude (Float,Integer, realToFrac) 
data MyNum = Nummy Float 
fromInteger :: Integer -> MyNum 
fromInteger x = Nummy (realToFrac x) 

을, 나는 다음과 같은 수 Try 모듈에서 문제가 발생합니다. 예를 들어 MyNum 형식의 함수를 선언하고이를 정수 리터럴과 동일하게 정의하면 형식 오류가 발생합니다.

답변

4

사용자가 연결 한 문서에서 해당 문서가 작동하려면 해당 확장명이 RebindableSyntax이어야한다고 말합니다.

+0

감사합니다. 아무도 왜이 질문을하지 않았는지 궁금합니다. 나는 내 손등에 문신을 한 "RTFM"이 필요하다고 생각한다. – Thomas

관련 문제