連想リストを返す 2 つの関数があるとします。1 つは各人が持っているボトルの合計量を示し、もう 1 つはそれを取得するのにかかった日数を示します。2 つのリストの平均をとってリストを結合するにはどうすればよいですか? 与えられた
(define (lookup k alst)
(cond [(empty? alst)
empty]
[(equal? k (first (first alst)))
(second (first alst))]
[else
(lookup k (rest alst))]))
と
(define (put k v alst)
(cond [(empty? alst)
(list (list k v))]
[(equal? k (first (first alst)))
(cons (list k v) (rest alst))]
[else
(cons (first alst)
(put k v (rest alst)))]))
つまり、関数(total-bottles lst)
が戻り
'((bob 10) (tim 30) (sally 25))
、
(days-taken lst)
戻るだろう
'((bob 2) (tim 3) (sally 5))
この結果を返すために、毎日平均して収集されたボトルの量を返す 1 日あたりの平均ボトル数関数のリストを結合する関数を作成するにはどうすればよいですか?
(average lst)
'((bob 5) (tim 10) (sally 5))
?