Haskell中整数的位数

时间:2017-01-24 00:49:57

标签: haskell

经典问题,但这次是在Haskell。我尝试以C方式执行此操作,但我一直收到此错误

Variable not in scope: numDigits :: Integer -> t

这是我写的代码

numDigits :: Integer -> Integer
numDigits n = toInteger (round (logBase 10 (fromIntegral n)) + 1)

我做错了什么吗?或者记录

1 个答案:

答案 0 :(得分:3)

仅供参考我投票结束是因为您要么输错了,要么没有向我们提供实际的失败代码。有问题的代码是有效的,但您应该指定如何加载它以及如何调用它。

示范:

% cat so.hs
numDigits :: Integer -> Integer
numDigits n = toInteger (round (logBase 10 (fromIntegral n)) + 1)
% ghci so.hs
GHCi, version 8.0.1: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /Users/tommd/.ghci
[1 of 1] Compiling Main             ( so.hs, interpreted )
Ok, modules loaded: Main.
*Main> numDigits 1948
4