我对 Haskell 编程相当陌生,我无法理解为什么在我的代码中收到此错误。
我的问题如下:任何正整数 i 都可以表示为 i = 2^n*k,其中 k 是奇数,也就是奇数的 2 次幂。我们称 n 为 2 在 i 中的指数。例如,2 在 40 中的指数是 3(因为 40 = 2^3*5),而 2 在 42 中的指数是 1。如果 i 本身是奇数,则 n 为零。另一方面,如果 i 是偶数,这意味着它可以被 2 整除。编写一个函数 exponentOfTwo 以在其参数中找到 2 的指数。
我理解伪代码,它似乎相当简单:递归地将 i 除以 2 直到结果为奇数,除法发生的次数为 n
这是我的代码(第 31-32 行):
exponentOfTwo :: Int -> Int
exponentOfTwo i = if odd i then 0 else 1 + exponentOfTwo (i 'div' 2)
我在第 32 行第 62 列收到错误“字符‘i’处的字符串/字符文字中的词法错误”。
我已经尝试到处寻找解决此错误的方法,但到目前为止我还没有运气。