하스켈을 배우고 있습니다. 베이스 'b'에서 'n'까지 곱셈 테이블을 반환하는 함수를 만들었습니다. 숫자는 'w'자릿수로 채워집니다. 마지막 단계로서 'w'를 자동으로 계산하고 싶습니다. 왜 이것이 컴파일되지 않습니까?(Floating Int)에 대한 인스턴스가 없습니다.
-- Number of digits needed for the multiplication table n*n in base 'base'
nOfDg :: Int -> Int-> Int
nOfDg n base = 1 + floor (logBase base (n*n))
오류 :
No instance for (Floating Int)
arising from a use of `logBase' at C:\haskel\dgnum.hs:4:24-38
Possible fix: add an instance declaration for (Floating Int)
In the first argument of `floor', namely `(logBase b (n * n))'
In the second argument of `(+)', namely `floor (logBase b (n * n))'
In the expression: 1 + floor (logBase b (n * n))
'(fromIntegral base)'도 필요합니다. –
@ Jason : Dan이 그 기능을 부여한 유형이 아니라면 그렇게 할 수 없습니다. – Chuck
네, 사용 방법에 따라 다릅니다. 형식 시그니처를 변경하거나 Andy의 버전을 사용하지 않는 경우에는 그것을 가지고있는 것처럼 할 수 있습니다. –