3
我正在处理的问题需要采取整数列表并返回这些数字的平均值。它需要适应,看起来像这样的特定格式...Foldl在SML中返回一个元组?
fun average (n::ns) =
let
val (a,b) = fold? (?) ? ?
in
real(a)/real(b)
end;
我只允许更换问号,不能使用任何内置的功能。我有一个工作解决方案,但它不遵守这些规则。
fun average (n::ns) =
let
val (a,b) = ((foldl (fn(x, y)=>(x+y)) n ns), length(ns)+1)
in
real(a)/real(b)
end;
那么,有没有办法让折叠函数返回一个元组?像这样的东西是什么,我想要它做的,但显然我不能做到这一点...
val (a,b) = ((foldl (fn(x, y)=>(x+y), count++) n ns)
谢谢。我明白你对空单的看法。除此之外,我现在得到这个错误...错误:操作符和操作数不一致[过载]操作符域:('Z * int)*'Z - >'Z 操作数:('Z * int )*'Z - >'Z * int – MCR 2012-03-15 17:08:06
@MCR:看到我的更新,我纠正了参数的顺序。 – pad 2012-03-15 17:11:49
谢谢。工作很好,现在有很多意义。 – MCR 2012-03-15 17:19:32