【发布时间】:2012-04-01 05:27:12
【问题描述】:
我正在处理的问题需要输入一个整数列表并返回这些数字的平均值。它需要适合看起来像这样的特定格式...
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)
【问题讨论】:
标签: functional-programming sml smlnj