为什么这不是终止```1 +(sizeofInt x`div`10)``?

pho*_*oxd 1 haskell

sizeofInt :: Int -> Int
sizeofInt 0 = 0
sizeofInt x = 1 + (sizeofInt x `div` 10)
Run Code Online (Sandbox Code Playgroud)

除非我把括号括起来,为什么这个功能不会终止x `div` 10

更新:修复数字为0时的情况

sizeofInt :: Int -> Int
sizeofInt x = if m == 0 then 1
  else 1 + sizeofInt m
  where m = x `div` 10
Run Code Online (Sandbox Code Playgroud)

Rei*_*chs 7

如果没有你所说的括号(sizeofInt x) `div` 10,它会sizeofInt x永远调用.应用程序总是比任何操作员更紧密地绑定.