繁体   English   中英

递归OCaml函数不起作用

[英]Recursive OCaml function not working

我正在使用以下代码尝试将整数列表中连续数字的平均值放入新列表中:

 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 也许您忘记了“;”。

您正在将average2函数传递给append函数,而不是在最后一行中调用它。 另外, newList为空,不会被突变或读取。 您可以在返回列表时将其添加到列表中。

更改为

((x + x')/2) :: (average2 x' :: [xs])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM