这样定义一个辅助内部函数:
我对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
。
我对Haskell还是很陌生,正在尝试编写一个简单的函数,该函数将整数数组作为输入,然后根据是否...]返回所有元素或平均值的乘积。
这样定义一个辅助内部函数:
arrayFunc :: [Integer] -> Integer arrayFunc [] = 1 arrayFunc array | (length array) % 2 == 1 = go1 array | (length array) % 2 == 0 = go2 array where go1 (x:xs) = x * go1 xs go2 (x:xs) = ((x + go2 xs) - 1) `div` length xs
这仅处理您问题中的句法问题。特别是
[Integer]
不是数组-它是整数的[[list
这样定义一个辅助内部函数: