Проблема, над которой я работаю, должна взять список целых чисел и вернуть среднее значение этих чисел. Он должен соответствовать определенному формату, который выглядит следующим образом ...
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)