2

数値 (Int) に 1 がいくつあるかをカウントする小さな haskell プログラムを作成しました。実行しようとすると、あいまいな変数制約について haskell が文句を言います。それは床の使用に由来することを私は知っています。また、stackoverflow に関するいくつかの回答も読みました。しかし、私はそれを回避する方法を本当に見つけませんでした。これが私のコードです:

count_ones = count_ones' 0

count_ones' m 0 = m
count_ones' m n | n-10*n_new == 1 = count_ones' (m+1) n_new
                | otherwise         = count_ones' m n_new
                 where n_new = floor (n/10)

何かアドバイス?

4

1 に答える 1