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