fun appendAll [] = [] | appendAll (x::xs) = x @ (appendAll xs); fun funPairs default [] _ = default | funPairs default ((u,v)::uvs) x = if u = x then v else funPairs default uvs x; fun sumList [] = 0 | sumList (x::xs) = x + (sumList xs); fun gradeStatus gradePairs name = let val score = funPairs 0 gradePairs name; (* look up the grade *) val (names, grades) = ListPair.unzip gradePairs; val ave = (sumList grades) div (length grades); in if score > ave then "Above average" else "Below average" end;