我对 Haskell 很陌生,正在尝试编写一个简单的函数,该函数将整数数组作为输入,然后返回所有元素的乘积或平均值,具体取决于数组的长度是奇数还是偶数,分别。
我了解如何为递归设置基本情况,以及如何为不同情况设置布尔值守卫,但我不明白如何协同工作。
arrayFunc :: [Integer] -> Integer
arrayFunc [] = 1
arrayFunc array
| (length array) % 2 == 1 = arrayFunc (x:xs) = x * arrayFunc xs
| (length array) % 2 == 0 = ((arrayFunc (x:xs) = x + arrayFunc xs) - 1) `div` length xs
目前我收到一个错误
"parse error on input '=' Perhaps you need a 'let' in a 'do' block?"
但我不明白我将如何在let
这里使用 a 。