Haskell:字符'i'中字符串/字符文字的词汇错误

Gus*_*Gus 5 recursion haskell lexical

我对Haskell编程很新,我无法理解为什么我在代码中收到此错误.

我的问题如下:任何正整数i可以表示为i = 2 ^ n*k,其中k是奇数,即,作为奇数的2倍的幂.我们在i中将n的指数称为n.例如,40的2的指数是3(因为40 = 2 ^ 3*5),而42的2的指数是1.如果i本身是奇数,则n是零.另一方面,如果我是偶数,那意味着它可以除以2.写一个函数exponentOfTwo,用于在其参数中找到2的指数.

我理解伪代码并且看起来相当简单:递归地将i除以2直到结果为奇数,除法发生的次数是n

这是我的代码(第31-32行):

exponentOfTwo :: Int -> Int  
exponentOfTwo i = if odd i then 0 else 1 + exponentOfTwo (i 'div' 2)  
Run Code Online (Sandbox Code Playgroud)

我在第32行第62列收到错误"字符'i'的字符串/字符文字中的词汇错误".

我试图在任何地方寻找解决这个错误的方法,到目前为止我没有运气.

小智 6

要在中缀中使用函数,请使用反引号(`)将其包围,而不是使用单引号(').后者用于字符文字,它们只有一个字符长.