我正在尝试建立一个元组列表。输入是元组列表,[([char], int1, int2), ...]
输出是元组列表,如[([char], int1, int2, (int1/int2)), ...]
. 我知道下面的这段代码是错误的,因为我认为它正在构建一个 tuples 列表的列表[[(),(),(),()], [(),(),(),()]]
。
代码:
{- take a list of labels, values, and weights and return list of labels and fractions -}
fraclist [] = []
fraclist x = [ (y,r,q,z) : y <- first (head x) | r <- scnd (head x) | q <- last (head x) | z <- r/q ] : fraclist tail x
{- helper func to get values from tuples -}
frst (a,b,c) = a
scnd (a,b,c) = b
last (a,b,c) = c
我怎样才能得到所描述的正确的输出形式?另外,我如何输出排序的元组列表,使得z按降序排列?