Мне нужна помощь в создании функции, которая будет вычислять среднее значение списка, в котором также могут быть буквы. Например:вычислительная средняя или список с буквами на схеме - 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>
Любой помощь будет сильно изложена