Схема Больше, чем средний функции

голоса
0

Я делаю программу на схеме (просто-схема доктора Ракетке), который принимает в ряде чисел с последующими целыми значениями. Мне нужно, чтобы быть в состоянии найти среднее из списка, который я уже начала работать и быть в состоянии подсчитать число больше, чем в среднем, и покажет, сколько есть.

;;Function for the sum of list
(define (sum listlen) 
  (if
    (null? listlen)
    0
    (+ (car listlen) (sum (cdr listlen)))
  )
)






;;This is the part I am having trouble with
(let ((avg  (/ (apply + (cdr numbers)) (car numbers))))
  (count (lambda (x) (< x avg)) (cdr numbers)))

Моя функция для нахождения больше, чем в средней функции дает мне несоответствие валентности. он говорит, что «количество: несоответствие Арности, ожидаемое число аргументов не соответствует заданному числу Ожидаемого результата: 1 Дано: 2 аргумента ...:»

Я уверен, что это что-то простое, что я делаю неправильно, если мое больше средней функции, но и для жизни меня я не могу понять, что это такое

Задан 27/11/2018 в 15:05
источник пользователем
На других языках...                            


1 ответов

голоса
1

;;Function for the sum of list
(define (sum listlen) 
  (if
    (null? listlen)
    0
    (+ (car listlen) (sum (cdr listlen)))
  )
)

Это на самом деле просто (define (sum lst) (apply + lst)).

Следующий,

(< x avg)

Должен ли он быть на самом деле (> x avg)(подсчитать число больше , чем в среднем)?

Наконец, http://docs.racket-lang.org/manual@simply-scheme/index.html говорит по count:

Возвращает количество букв в слове или количество слов в предложении.

Возможно , вы имели в виду что - то вроде (length (filter (lambda (x) (> x avg)) (cdr numbers)))? (Может быть сделано с reduceслишком, или по имени let, или любой другой .)

Ответил 27/11/2018 в 15:16
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more