2012-04-22 5 views
5

몇 가지 함수가 매우 큰 결과를 반환하기 때문에 IntInteger을 모두 사용하는 프로그램이 있습니다. 나는 fromIntegral을 사방에 사용해야하는 것에 질 렸고 컴파일시에 하스켈이 IntInteger 사이의 구별을 무시하도록하는 방법이 있는지 궁금합니다.하스켈은 인트 대 정수를 무시할 수 있습니까?

+4

아니요. 서로 다른 유형과 다른 속성이라는 사실을 무시하면 Haskell과 마찬가지로 형식이 바뀌는 언어로 악조건이됩니다. 가끔은 고통 스럽지만 그 차이를 무시하는 것은 더 나빠질 것이라는 데 동의합니다. 하스켈이 제공하는 유형 안전성의 전체 요점을 빠뜨렸다. –

+8

아니요, 없습니다. 그리고 안전 : 타입 안전. 최소 타입 이름으로 변환을 정의 할 수 있습니다 :) –

+3

GHC에서 적어도 Integer는 가능한 한 내부적으로 Int를 사용하므로 Int를 사용하는 것이 반드시 의미있는 것은 아닙니다. 이 경우에. – geekosaur

답변

13

해결책 : 프로그램에서 Int을 제거하고 모두 Integer을 사용하십시오. geekosaur가 지적한대로 the generic functions from Data.List (예 : genericLength)을 사용할 수 있습니다. 특정 프로그램 코드를 제공하면보다 구체적인 제안을 할 수 있습니다.

관련 문제