후 서명을 변경한다. 그러나 이제는 이름을 지정하려고하면 원래 서명보다 더 구체적인 서명이 나타납니다.이유는 다음 식을 가지고 <code>ghci</code> 주위 재생 할당
왜 이런 일이 발생합니까?
후 서명을 변경한다. 그러나 이제는 이름을 지정하려고하면 원래 서명보다 더 구체적인 서명이 나타납니다.이유는 다음 식을 가지고 <code>ghci</code> 주위 재생 할당
왜 이런 일이 발생합니까?
때문에 x = ...
(매개 변수 없음) 형태의 정의에는 보통 in the other answer과 같은 일부 기본값을 포함하는 단일 형태 (즉, 비 다형성) 유형이 지정됩니다.
이 문제를 방지하려면 정의에 형식 서명을 추가하거나 :set -XNoMonomorphismRestriction
을 사용하여 단일 변형 제한을 해제하십시오. it gets disabled by default in GHCi in some future version까지 자동으로 실행되도록 .ghci
file에 추가 할 수 있습니다.
또는 η 확장; ie'fx = unlines로하자. 지도 (\ (a, b) ->보기 a ++ ""++ 쇼 b) $ x' – luqui
기본 규칙.
GHCi에 stuff를 입력하면 기본 유형을 적용하려고 시도합니다. IIRC, Num
제약 조건이있는 경우 Integer
을 선택하고 Fractional
을 선택하면 Double
을 선택하고 다른 모든 경우에는 ()
을 선택합니다.
이것을 Haskell 소스 파일에 작성하고 GHCi로로드하면이 작업이 수행되지 않습니다 (필자는 믿는다).
모듈 단위로 기본 규칙을 변경하려면 default Int
과 같이 말할 수도 있습니다.
참고 : [1] (http://stackoverflow.com/questions/7055146), [2] (http://stackoverflow.com/questions/11439163), [3] (http : // stackoverflow. com/questions/9714697), [4] (http://stackoverflow.com/questions/8434808), [5] (http://stackoverflow.com/questions/7799345), [6] (http : // stackoverflow .com/questions/8262020), [7] (http://stackoverflow.com/questions/8655900), [8] (http://stackoverflow.com/questions/11003535). 나는 정직하게 이것의 어느 것 (만일에)이 이것을 표시 할 지 모르겠다. –