有人可以帮我理解 Haskell 中的这个递归吗?

Can someone help me understand this recursion in Haskell?

代码如下:

func [] _ = 0
func (head:tail) num
| head > num = func tail num
| head <= num = head + (func tail num)

main = print(func [4,1,2,5,7,6] 2 * 3)

这是我的解决方案:

4 + func[1,2,5,7,6] 6 
    -> 1 + func[2,5,7,6] 6 
           -> 2 + func[5,7,6] 6 
                  -> 5 + func[7,6] 6 
                         -> func[6] 6
                            -> 6 + func[] 6
 ---> 4 + 1 + 2 + 5 + 6 = 18

但是我查了一下网上的编译解是9,我哪里弄错了我没看懂。这是非常简单的代码。

print提供参数的表达式应理解为

(func [4, 1, 2, 5, 7, 6] 2) * 3

没有

func [4, 1, 2, 5, 7, 6] (2 * 3)

因为函数应用程序优先于任何中缀运算符。