我需要编写一个基本的方案程序,可以找到一个列表的中位数和另一个平均值。
到目前为止,这是我想出的:
意思是:
(define (mean lst)
(if (null? lst) ()
(+ 1 (car lst) (mean (cdr lst))))
我知道我需要在某处划分长度,但不知道该怎么做。我对此的思考过程是将每个元素添加到列表的堆栈中,然后除以列表的长度?
中位数:
我不确定从哪里开始计算中位数。我知道我需要确定列表是否包含奇数个元素或偶数个元素,所以我想出了
(define (median lst)
(if (integer? (/ (length lst) 2) ;which is the one for even
我不知道我是否需要另一个程序才能让我进入列表中间?