2017-01-24 13 views
1

古典的な問題ですが、今回はハスケル問題です。私はこのCの方法をしようが、私は ハスケルの整数の桁数

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

を書いたコードは、このエラーここ

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

を私は何か間違ったことをしましたされてきておきますか?またはログ

+0

toInteger' 'の署名は何ですか?覚えていない。また、なぜそれを 'length 'として定義するだけではないのでしょうか。ショー? – Carcigenicate

+0

to logger Base 10が返されるので、私は思いますか? –

+0

これはREPLまたはソースファイルで行いますか? – Carcigenicate

答えて

1

FYI私は、タイプミスをしたか、または実際に失敗したコードを私たちに提供していないため、閉じることにしました。問題のコードは有効ですが、読み込む方法と呼び出す方法を指定する必要があります。デモンストレーションのために

% 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 
関連する問題