文字を含むことができるリストの平均を計算する関数を作成するのに役立つ必要があります。たとえば:Scheme - Dr.Racketの平均値またはリストを計算する
(mean '(1 2 3 4 5)); → 3
(mean '(1 a 2 b c d e 3)); → 2
(mean '(a b c d e)); → "Error: no numbers in list"
は、これまでのところ、これは私が持っているものであるが、私は理解していない、このエラーが出る:
(define new_list '())
(define (mean lis)
(if (null? lis)
(display "Error: no numbers in list")
(avg(set! new_list (my-filter number? lis))) ;my-filter, filters out everything except numbers
)
)
(define (avg lis)
(/ (apply + lis) (length lis)))
私が取得エラーメッセージ:
どれmcar: contract violation
expected: mpair?
given: #<void>
助けが大いにapriciatedされるでしょう