【发布时间】:2018-04-02 11:17:45
【问题描述】:
我正在使用以下代码尝试将整数列表中连续数字的平均值放入一个新列表中:
let newList = []
let rec average2 xs =
match xs with
| [] -> newList
| x :: [] -> newList
| x :: x' :: [xs] -> append newList [((x + x')/2)] average2 x' :: [xs];;
但我不断收到以下错误,不明白为什么: 错误:此函数的类型为 'a list -> 'a list -> 'a list 它应用于太多参数;也许你忘记了一个';'。
【问题讨论】:
-
你为什么有
newList?它始终是一个空列表。 -
@Palle 我想用它作为一个变量来继续添加元素
-
newList是常量,从不从代码中读取。 -
我没有在模式匹配的第三行中将东西附加到列表中
-
append函数返回一个新列表,其中第一个列表附加到第二个列表。没有参数会发生变异。